전체 글
-
27. 라면공장 ⁂코딩 테스트/Level 2 2020. 8. 11. 10:53
https://programmers.co.kr/learn/courses/30/lessons/42629 라면공장 힙(Heap) 3174명 완료 저에게 Level2에서 가장 힘들었던 문제를 꼽으라면 가장 큰 수, 124 문제와 이 문제입니다. 조이스틱(완전 탐색)도 오래 걸렸군요.. 제가 푼 방식은 다음과 같습니다. 1. 날자가 흘러가면서 스톡이 1씩 줄어들겠죠. 2. 공급일이 되면 일단 공급을 '우선순위 큐'에 (임시로) 집어넣습니다. 3. 시간이 지나 재고가 바닥이 되면 (stock == 0) (임시) 큐에 들어있는 가장 큰 공급을 뽑아서 스톡에 더 해줍니다. 4. 3번의 횟수를 카운트합니다. -------- 먼저 공급을 큐에 넣었다가 바닥이 난 날짜에 뽑는 이유를 생각해 봅시다. 실제 상황이 아닌 일종..
-
26. 큰 수 만들기코딩 테스트/Level 2 2020. 8. 9. 10:21
https://programmers.co.kr/learn/courses/30/lessons/42883 큰 수 만들기 탐욕법(Greedy) 3568명 완료 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 파이썬 def solution(number, k): count, i = 0, 0 while i 0: i -= 1 if count == k: return number else: i += 1 return number[:len(number) - k] 테스트 1 〉통과 (0.04ms, 10.8M..
-
25. 숫자 야구코딩 테스트/Level 2 2020. 8. 8. 21:27
https://programmers.co.kr/learn/courses/30/lessons/42841 완전탐색 4116명 완료 완전탐색이니까 모든 경우의 수를 찾아 (=노가다) 풀면 끝. 완전탐색문제라 난이도가 높지 않습니다. 코딩테스트 연습 - 숫자 야구 [[123, 1, 1], [356, 1, 0], [327, 2, 0], [489, 0, 1]] 2 programmers.co.kr import itertools def solution(nums): answer_set = set() for num, s, b in nums: temp_set = set() num = list(map(int, str(num))) # num = [int(each) for each in str(num)] for i, j, k i..
-
24. 숫자의 표현코딩 테스트/Level 2 2020. 8. 7. 20:01
https://programmers.co.kr/learn/courses/30/lessons/12924 연습문제 4145명 완료 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 파이썬 def solution(n): count = 0 for i in range(1, n+1): total = 0 for j in range(i, n+1): total += j if total == n: count += 1 break elif total > n: break return count 테스트 1 〉통과 (..
-
23. 올바른 괄호코딩 테스트/Level 2 2020. 8. 6. 19:29
https://programmers.co.kr/learn/courses/30/lessons/12909 연습문제 4333명 완료 스택을 이용해서 풀면 무난합니다. 예전에 올린 적 있습니다. https://comdoc.tistory.com/entry/11-%EC%8A%A4%ED%83%9D%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B4%84%ED%98%B8bracket-%EC%B2%B4%ED%81%AC-%ED%8C%8C%EC%9D%B4%EC%8D%AC 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ()() 또는 (())() 는 올바른 괄호입니다. )()( 또는 (()( 는..
-
22. 문자열 압축코딩 테스트/Level 2 2020. 8. 5. 16:49
https://programmers.co.kr/learn/courses/30/lessons/60057 문자열 압축 2020 KAKAO BLIND RECRUITMENT 4461명 완료 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr 파이썬 def solution(s): min_length = [] for length in range(1, len(s) + 1): temp, compressed, count = '', '', 0 for i in range(0, len(s), length): word = s[i:..
-
21. 다음 큰 숫자코딩 테스트/Level 2 2020. 8. 4. 14:56
https://programmers.co.kr/learn/courses/30/lessons/12911 연습문제 4563명 완료 코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr Python def solution(n): n_count = bin(n).count('1') n += 1 while bin(n).count('1') != n_count: n += 1 return n 테스트 1 〉통과 (0.04ms, 10.7MB) 테스트 2 〉통과 (0.04ms, 10.7MB) 테스트 3 ..
-
20. 최솟값 만들기코딩 테스트/Level 2 2020. 8. 3. 14:31
https://programmers.co.kr/learn/courses/30/lessons/12941 연습문제 4891명 완료 쉬운 편입니다. 곱하고 더해서 가장 작은 수를 만들어야 되기 때문에 작은 수와 큰 수를 조합해야 가장 작은 수를 만들 수 있습니다. 코딩테스트 연습 - 최솟값 만들기 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱 programmers.co.kr Python def solution(A, B): A.sort() B.sort(reverse=True) s=0 for i in range(len(A)): s += A[i]*B[i] ret..