전체보기
-
합성수 찾기코딩 테스트/Level 0 2023. 1. 9. 06:51
https://school.programmers.co.kr/learn/courses/30/lessons/120846 파이썬 에라토스테네스의 체 def solution(n): primes = [True for _ in range(n + 1)] primes[0] = primes[1] = False for num in range(2, n): if primes[num]: for each in range(num * 2, n + 1, num): primes[each] = False return n - sum(primes) - 1 '에라토스테네스의 체'를 쓰지 않고... def solution(n): answer = 0 for i in range(1, n + 1): counter = 0 for j in range(1..
-
2023 KAKAO BLIND RECRUITMENT - 표 병합코딩 테스트/Level 3 2023. 1. 8. 20:03
https://school.programmers.co.kr/learn/courses/30/lessons/150366 단순하게 리스트로 머지 상태를 관리했다. def solution(commands): def rc2index(r, c): return (int(r) - 1) * 50 + int(c) - 1 def update(p, s): old_state = states[p] for index in range(length): if states[index] == old_state: table[index] = s def replace(s1, s2): for index in range(length): if table[index] == s1: table[index] = s2 def merge(p1, p2): cha..
-
2023 KAKAO BLIND RECRUITMENT - 표현 가능한 이진트리코딩 테스트/Level 3 2023. 1. 8. 01:57
https://school.programmers.co.kr/learn/courses/30/lessons/150367 포화 이진 트리: 트리내 요소의 개수 = 2 ** n - 1 '0' 노드의 아래 노드는 모두 '0'이어야 한다. def solution(numbers): def is_tree(s, parent): if parent == '0' and not all(child == '0' for child in s): return False if len(s) == 1: return True return is_tree(s[:(center := len(s) // 2)], s[center]) and is_tree(s[center + 1:], s[center]) def to_bin(num): s = bin(num)..
-
2023 KAKAO BLIND RECRUITMENT - 택배 배달과 수거하기코딩 테스트/Level 2 2023. 1. 6. 09:20
2023 KAKAO BLIND RECRUITMENT - 택배 배달과 수거하기 https://school.programmers.co.kr/learn/courses/30/lessons/150369 cap=4 일 때, 최소 거리로 배달을 완료하는 방법은 배달 갈 때 가장 먼 집부터 4개의 택배를 배달 돌아올 때도 가장 먼 집부터 4개의 바구니를 회수하는 것이다. 배달시, 회수시 각각 터닝 포인트 후보들을 뽑은 뒤 포인트의 쌍을 만들어 가장 먼 곳을 터닝 포인트로 잡으면 된다. def solution(cap, n, deliveries, pickups): def get_points(array): points = [] box, index = 0, n - 1 while index > -1: if array[index..
-
2023 KAKAO BLIND RECRUITMENT - 미로 탈출 명령어코딩 테스트/Level 3 2023. 1. 6. 00:40
https://school.programmers.co.kr/learn/courses/30/lessons/150365 DFS. 스택으로 풀었다. 방향은 dlru 순으로 확인해야 한다. 스택은 마지막 입력한 것부터 pop 하기 때문에... 아래 코드와 같은 순서를.... 중간에 최소 거리가 남은 거리 보다 큰 경우, 홀짝이 안 맞는 경우는 가지치기를 했다. def solution(n, m, x, y, r, c, k): stack = [(x, y, [])] result = 'impossible' while stack: x_pos, y_pos, path = stack.pop() if len(path) == k and (x_pos, y_pos) == (r, c): result = ''.join(path) brea..
-
2023 KAKAO BLIND RECRUITMENT - 이모티콘 할인행사코딩 테스트/Level 2 2023. 1. 5. 22:35
https://school.programmers.co.kr/learn/courses/30/lessons/150368 def solution(users, emoticons): from itertools import product answer = [0, 0] for discounts in product((40, 30, 20, 10), repeat=len(emoticons)): sold = [0, 0] # 이모티콘, 판매액 for user_discount, user_money in users: sold_emoticons = 0 for emoticon, discount in zip(emoticons, discounts): if discount >= user_discount: sold_emoticons += em..
-
2023 KAKAO BLIND RECRUITMENT - 개인정보 수집 유효기간코딩 테스트/Level 1 2023. 1. 5. 21:11
https://school.programmers.co.kr/learn/courses/30/lessons/150370 파이썬 짧게 줄인다면.. def solution(today, terms, privacies): def sum_date(year, month, day, t_month): q, month = divmod(month + t_month, 12) if month = sum_date(*(int(each) for each in p_date.split('.')), terms[t_num])] 읽기 편하게 코드를 작성한다면... def solution(today, terms, privacies): def str2date(text): return [int(each) for each in text.split('..