Dev/Algorithm 15

[프로그래머스] 자릿수 더하기 LV1 / kotlin

자릿수 더하기 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12931 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1차 시도 class Solution { fun solution(n: Int): Int { var answer = 0 if (n < 10) { answer = n } else { ..

Dev/Algorithm 2022.12.04

[알고리즘] 프린트(❌) - 알고리즘 공부

✔️사이트 : 프로그래머스 ✔️언 어 : Kotlin ✔️난이도 : Level 2 ✔️문 제 : 프린트 총평 : 테스트가 통과되지 않았다. 문제를 풀어내는 아이디어는 비슷했으나 잘못 생각한 부분이 있었다. 문제 : 아래의 테스트코드를 작성한것처럼 작동해야한다고 생각했다. assertEquals(1, solution(intArrayOf(1), 0)) assertEquals(1, solution(intArrayOf(2, 1, 3, 2), 2)) assertEquals(5, solution(intArrayOf(1, 1, 9, 1, 1, 1), 0)) assertEquals(1, solution(intArrayOf(1, 2, 2, 3, 4, 6, 6, 6, 7, 9), 9)) assertEquals(9, sol..

Dev/Algorithm 2021.03.03

[알고리즘] 다리를 지나는 트럭(⭕) - 알고리즘 공부

✔️사이트 : 프로그래머스 ✔️언어 : Kotlin ✔️난이도 : Level 2 ✔️문제 : 다리를 지나는 트럭 총평 : 초보라서 체감난이도는 3~4 쯤이지 않을까라는 생각을 했다. 과정 : 해당 문제에서는 경과 시간에 맞춰서 다리를 건너는 트럭 을 어떻게 구현하는지가 관건이었다. 트럭위를 지나가는 형태의 다리를 어떤 데이터 구조체를 사용해야할지 해결하는게 제일 어려웠습니다. 그래서 배열, 리스트를 시도하다가 떠오른게 Queue 였으며 다음과 같은 아이디어를 생각했으며 구현했다. 조건 : - 다리 길이 2 - 한계 무게 10 - 대기 트럭 (7,4,5,6) 최소 트럭의 무게가 1 이상이니, 다리 Queue 를 0 으로 채워서 표현했다. 그리고 길이가 2이고 0으로 채워진 Queue 에서 poll 후에 트..

Dev/Algorithm 2021.02.24

알고리즘 - Defanging an IP Address

문제 Given a valid (IPv4) IP address, return a defanged version of that IP address. A defanged IP address replaces every period "." with "[.]". Example 1: Input: address = "1.1.1.1" Output: "1[.]1[.]1[.]1" Example 2: Input: address = "255.100.50.0" Output: "255[.]100[.]50[.]0" 답안 간단한 내장 함수를 사용해서 적용 class Solution { fun defangIPaddr(address: String): String { return address.replace(".", "[.]") } } ..

Dev/Algorithm 2020.02.02

알고리즘 - Find Numbers with Even Number of Digits

문제 자체를 이해하지 못해서 처음에 헤맸습니다... 자리수가 짝수인 숫자를 찾는 문제입니다. 문제 Given an array nums of integers, return how many of them contain an even number of digits. Example 1: Input: nums = [12,345,2,6,7896] Output: 2 Explanation: 12 contains 2 digits (even number of digits). 345 contains 3 digits (odd number of digits). 2 contains 1 digit (odd number of digits). 6 contains 1 digit (odd number of digits). 7896 con..

Dev/Algorithm 2020.01.27

[책] 누구나 자료 구조와 알고리즘 - 출퇴근 시간 100% 활용!!

'간단하게' 책 리뷰를 해보겠습니다!!! 제가 페이스북 길벗 출판사에서 진행한 이벤트에 당첨이 되어서 책을 받게 되었습니다!! (흐뭇흐뭇)제가 받은 책은 누구나 자료 구조와 알고리즘 입니다. 페이스북 이벤트 주소 저는 직업으로서 안드로이드 개발을 3년정도 했습니다. 그러나 알고리즘 공부는 하다말다를 꽤나 반복했으며, 지금까지 잘 모르는 상태로 지내고 있습니다. 다만, 이번의 서평이라는 과제 덕분에 좀 더 마음먹고 책을 읽으며 공부를 할 수 있었고 그 덕분에 이론이 머리에 와닿기 시작했습니다. 하지만 갈길은 아직 많이 남았다고 생각합니다..... ㅠㅠ [아주 지극히 주관적인 책의 특징 3가지] 1. 책 크기는 작고 얇아서 가져다니기 쉽습니다.2. 어려운 내용이 아니기에 집중하기가 편합니다.3. 섹션마다 내..

Dev/Algorithm 2018.08.31

1D1A - One Day One Algorithm

1D1A - One Day One Algorithm 최대공약수와 최소공배수두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환해주는 gcdlcm 함수를 완성해 보세요. 배열의 맨 앞에 최대공약수, 그 다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 gcdlcm(3,12) 가 입력되면, [3, 12]를 반환해주면 됩니다. import java.util.Arrays;import java.util.ArrayList;import java.util.List; class TryHelloWorld { public int[] gcdlcm(int a, int b) { int[] answer = new int[2]; List al = new ArrayList(); List bl = new ArrayList(); f..

Dev/Algorithm 2018.03.30

1D1A - One Day One Algorithm

1D1A - One Day One Algorithm 최솟값 만들기 자연수로 이루어진 길이가 같은 수열 A,B가 있습니다. 최솟값 만들기는 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱한 값을 누적하여 더합니다. 이러한 과정을 수열의 길이만큼 반복하여 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다. 예를 들어 A = [1, 2] , B = [3, 4] 라면 A에서 1, B에서 4를 뽑아 곱하여 더합니다.A에서 2, B에서 3을 뽑아 곱하여 더합니다.수열의 길이만큼 반복하여 최솟값 10을 얻을 수 있으며, 이 10이 최솟값이 됩니다.수열 A,B가 주어질 때, 최솟값을 반환해주는 getMinSum 함수를 완성하세요. public int getMinSum(int[] A, int[] B) { ..

Dev/Algorithm 2018.03.26

CS50 공부 - 알고리즘

링크주소 : http://www.edwith.org/cs50 버블정렬 (Bubble Sort) : 인접한 두 수를 비교해서 큰 수를 뒤로 보내는 정렬 방법이다.시간복잡도 O(n²)삽입정렬 (Insertion Sort) : 정렬되지 않은 숫자들을 하나씩 빼서 정렬되어 있는 숫자 사이의 올바른 위치에 삽입하는 정렬 방법이다. 삽입 정렬은 자료의 양이 적을 때 성능이 우수하며 자료 대부분이 이미 정렬이 되어있는 경우 효율적이다.선택정렬 (Selection Sort): 배열 안의 자료 중 가장 작은 수(혹은 가장 큰 수)를 찾아 첫 번째 위치(혹은 가장 마지막 위치)의 수와 교환해주는 방식의 정렬 방법이다.합병정렬 (Merge Sort) : 원소가 한 개가 될 때까지 계속해서 반으로 나누다가 다시 합쳐나가며 정..

Dev/Algorithm 2018.03.20