코딩 테스트/Level 2
-
뒤에 있는 큰 수 찾기코딩 테스트/Level 2 2023. 1. 28. 20:59
https://school.programmers.co.kr/learn/courses/30/lessons/154539 def solution(numbers): answer = [] for i in range(len(numbers)): for j in range(i + 1, len(numbers)): if numbers[j] > numbers[i]: answer.append(numbers[j]) break else: answer.append(-1) return answer 뭐 당연히 이런 코드로는 통과 불능... 예전 Level 2의 수준과 다르게 어려워 졌다. ㅜ,.ㅜ 편법이지만 뒤집어 생각하면 통과는 가능하다. def solution(numbers): answer = [-1 for _ in numbers..
-
무인도 여행코딩 테스트/Level 2 2023. 1. 28. 13:22
https://school.programmers.co.kr/learn/courses/30/lessons/154540 def solution(maps): def solve(start_y, start_x): que = [(start_y, start_x)] food = 0 while que: pos_y, pos_x = que.pop() if (pos_y, pos_x) not in visited: visited.add((pos_y, pos_x)) food += int(maps[pos_y][pos_x]) for diff_x, diff_y in ((1, 0), (-1, 0), (0, 1), (0, -1)): new_x, new_y = pos_x + diff_x, pos_y + diff_y if 0
-
시소 짝꿍코딩 테스트/Level 2 2023. 1. 19. 21:50
https://school.programmers.co.kr/learn/courses/30/lessons/152996 생각의 흐름을 따라... from itertools import product, combinations def solution(weights): answer = 0 for w1, w2 in combinations(weights, 2): for seat1, seat2 in product((2, 3, 4), repeat=2): if w1 * seat1 == w2 * seat2: answer += 1 break return answer 시간초과~! 레벨 2도 어렵다. 테스트 1 〉통과 (0.01ms, 10.2MB) 테스트 2 〉통과 (0.02ms, 10.2MB) 테스트 3 〉통과 (0.04ms,..
-
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 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..
-
유사 칸토어 문자열코딩 테스트/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 ..
-
테이블 해시 함수코딩 테스트/Level 2 2022. 12. 24. 13:04
https://school.programmers.co.kr/learn/courses/30/lessons/147354 from functools import reduce solution = lambda data, col, row_begin, row_end: reduce(lambda x, y: x ^ y, (sum(each % (i + 1) for each in sorted(data, key=lambda x: (x[col - 1], -x[0]))[i]) for i in range(row_begin - 1, row_end))) def solution(data, col, row_begin, row_end): data.sort(key=lambda x: (x[col - 1], -x[0])) answer = None..