🔒 문제 💭 생각의 흐름 1. 맨 첫글자로 group을 나누어 9..0 역순으로 훑는다. 2. 각 라운드를 돌며 중복 없이 가장 큰수가 하나 나올때 마다 이어붙인다. roundArray = [3, 34, 3411, 3434, 3413, 345] 1라운드 : 3 3 3 3 3 3 3 2라운드 : 3 4 4 4 4 4 3라운드 : 3 3 1 3 1 5 4라운드 : 3 4 1 4 3 ... 😵💫 실수 1. 위 방법에서 중복이 있을 경우 해당 숫자만 후보로 남기고 라운드를 또 따로돌려야한다. -> 재귀를 써야함. 2. 모든 숫자가 0이 올 경우 출력은 0이다. ex) [0, 0, 0, 0] -> 0 (※ 결과를 string으로 반환할 뿐 어쨌든 가장 큰 정수 변환하여 출력해야한다.) 🔐 잘못된 풀이 (Kotl..
프로그래머스
🔒 문제 💡 생각의 흐름 (1) 아, 유클리드 호제법 GCD (최대공약수) 함수 작성해서 최소공배수 바로 구해보리기 하면 되겠군. 최대공약수 공식 알고리즘은 요기서 최대공약수 알고리즘 Greatest Common Divisor Problem 임의의 자연수 n, m (단, n > m) 에 대한 최대공약수? Input 자연수 n, m Output Largest D s.t n % D and m % D == 0 s.t: Search That의 약자. [1] n-gcd 가장 생각하기 쉬운.. m-falcon.tistory.com (2) 오름 정렬해서 쪼꼬만 애들끼리 만든 최소공배수로 뒷놈들 다 검사해보는 식으로 해야겠군 🔑풀이 (Kotlin) class Solution { fun gcd (a: Int, b: In..
🔒 문제 💡 생각의 흐름 1,2,4 3개의 숫자만으로 한 자리씩 표현 총 자릿수는 3^N + 3^N-1 + 3^N-2 .... 3^0 => N+1 의 문자열 길이를 갖는다. 군 내에서 N번째 숫자를 3^N * n + 3^N-1 * n ... N+1 만큼 loop을 돌고 n을 이어붙이면 된다고 생각했다. 먼저, 10진수 -> 124나라의 숫자가 바로 생각나지 않으니 124나라의 숫자 -> 10진수변환을 곱씹어 보았다. 예를들면 10진수 '241' 3^2 * 2 + 3^1 * 4 + 3^0 * 1 >[0단계] 3마다 단위가 바뀌는 걸로 봐서 3진법!!!!!?!?!?! 근데 숫자 0과 4를 따로 처리해야겠네? [1단계] 124나라의 숫자의 길이 == 3^1 + 3^2 + 3^3 + .... 3의 제곱수의 누적..
문제 실수 대놓고 서로 다른 '조합'의 수를 구하는 문구에서 기계적으로 Combination을 떠올렸다. 옷의 갯수 까지의 모든 Combination 조합을 합하면 답이 도출되지 않을까? 하고 생각했다. 예를 들어 위의 예제대로 하면 얼굴(2) - 상의(1) - 하의(1) - 겉옷(1) 5C1 + 5C2 - 1(얼굴 2개만 뽑는 경우의수 ) + 5C3 - 3 (얼굴 2개 + 나머지 1조합 경우의수) + 5C4 - 3 (얼굴 2개 + 2개 조합 경우의수) ------ 이런 식으로하니 일반식이 도출되지 않았다. 아이디어 조합의 수를 구하라 했지만 옷을 하나이상 걸친 모든 경우의 수를 구하는 문제였다. 각 옷의 종류마다 옷을 입는 경우의 수를 나눠서 표현하면 얼굴 -> 입지 않음 , 동그란 안경 , 검정 선글..
1. 문제 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr ⭐ 카카오 2019 블라인드 공개채용 기출문제 2. 실수 loop을 2번 중첩했다가 시간초과로 75점을 맞았다. loop 2중첩 시나리오는 다음과 같았다. 아이디 - 닉네임이 매핑되어야 한다는 사실로부터 (1) 중복을 제거한 아이디 목록 Set (집합) (2) Set element 수 == 회원수 만큼 loop (3) (2) loop 안에서 record 로그 수만큼 또 loop (2) + (3) => Time Complexity O(N^2) => 시간..
문제 해결 방법 (1) 접두어 -> 길이가 짧을 수록 접두어 Matching 될 확률이 증가함 -> Sort 아이디어 떠올림. (2) 이중 For loop 반드시 첫자리 원소가 접두어인 것이 아니라 모든 원소가 서로 접두어 관계를 갖지 않는지 확인해야할 필요가 있음. 실수 (1) break break문은 하나의 Loop 만을 탈출한다는 사실을 망각하고 다음과 같이 작성했었다. 이중 for loop 안에서의 break은 2번째 loop은 탈출하지 못한다. 물론 정답을 도출해 내는데는 영향을 미치지 않지만 Time Complexity 증가의 원인이 된다. (2) compare 오름차순 정렬을 전화번호의 '길이'를 기준으로 시도하기 위해 compare 함수를 다음과 같이 작성했었다. 근데 요놈이 효율성 검사에..