전체보기
-
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('..
-
유사 칸토어 문자열코딩 테스트/Level 2 2023. 1. 1. 12:00
https://school.programmers.co.kr/learn/courses/30/lessons/148652 이렇게는 제한 시간 내에 풀 수 없다 def solution(n, l, r): prev = [1] for _ in range(n): temp = [] for each in prev: if each == 1: temp.extend((1, 1, 0, 1, 1)) else: temp.extend((0, 0, 0, 0, 0)) prev = temp return sum(int(each) for each in prev[l - 1: r]) 재귀를 이용하여 풀 수 있다. def solution(n, l, r): def solve(num): if num 2: return (quotient - 1) * (4..
-
마법의 엘리베이터코딩 테스트/Level 2 2023. 1. 1. 11:33
https://school.programmers.co.kr/learn/courses/30/lessons/148653 def solution(storey): def solve(num, total): if num == 0: return total num_log = int(log10(num)) # 자리수 - 1 first = num // 10 ** num_log # 제일 앞 숫자 if first 5: return solve(10 ** (num_log + 1) - num, total + 1) else: if num_log == 0: return first + total num2 ..
-
파이썬 정렬Python/이것저것 파이썬 2022. 12. 31. 20:56
기본 print(sorted([5, 2, 3, 1, 4])) # [1, 2, 3, 4, 5] print(sorted([5, 2, 3, 1, 4], reverse=True)) # [5, 4, 3, 2, 1] a = [5, 2, 3, 1, 4] a.sort() print(a) # [1, 2, 3, 4, 5] print(sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})) # [1, 2, 3, 4, 5] 키 student_tuples = [ ('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10), ] print(sorted(student_tuples, key=lambda student: student[2])) # sort by a..
-
사다리 게임Python/이것저것 파이썬 2022. 12. 28. 22:32
from random import randint, shuffle def main(member_num, line_num): members = list(range(1, 1 + member_num)) # 1번부터 targets = list(chr(each + ord('A')) for each in range(member_num)) # A 부터 ladder = [[False for _ in range(member_num - 1)] for _ in range(line_num)] # 가로선 선택 full_col = set(range(line_num)) prev_col = set() for i in range(member_num - 1): # 좌에서 우로, 마지막 열은 가로선 없음. temp = list(full_c..