코딩 테스트
-
2024 KAKAO WINTER INTERNSHIP 가장 많이 받은 선물코딩 테스트/Level 1 2024. 4. 3. 09:49
https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 자료 구조까지 예시로 제공되어 풀기 쉽도록 만든 문제.. 매번 friends에서 원소의 위치를 찾는 것은 비효율적이다. 딕셔너리(맵, 해시)를 이용해 O(1)로 위치를 찾도록 하자. def solution(friends, gifts): friend_index = {friend: index for index, friend in enumerate(friends)} gift_table = [[0 fo..
-
프로그래머스 / 두 원 사이의 정수코딩 테스트/Level 2 2023. 4. 15. 15:54
https://school.programmers.co.kr/learn/courses/30/lessons/181187 파이썬 def solution(r1, r2): answer = 0 pow_r1, pow_r2 = r1 ** 2, r2 ** 2 for y in range(1, r2 + 1): temp1 = pow_r1 - y ** 2 if temp1 >= 0: temp2 = temp1 ** 0.5 x1 = int(temp2) - (1 if temp2 == int(temp2) else 0) else: x1 = -1 answer += int((pow_r2 - y ** 2) ** 0.5) - x1 return answer * 4
-
프로그래머스 / 연속된 부분 수열의 합코딩 테스트/Level 2 2023. 4. 11. 23:29
https://school.programmers.co.kr/learn/courses/30/lessons/178870 파이썬 이렇게 쉽게는 넘어가지 않겠지.. def solution(sequence, k): answer = [] for i in range(len(sequence)): for j in range(i + 1, len(sequence) + 1): s = sum(sequence[i:j]) if s == k: answer.append([i, j - 1]) elif s > k: break return sorted(answer, key=lambda x: x[1] - x[0])[0] 소티드를 이용해서 간결하게.. def solution(sequence, k): answer = [] left = right..
-
프로그래머스 / 달리기 경주코딩 테스트/Level 1 2023. 4. 10. 18:21
https://school.programmers.co.kr/learn/courses/30/lessons/178871 파이썬 def solution(players, callings): players_map = {each: index for index, each in enumerate(players)} for player in callings: index = players_map[player] players_map[player] -= 1 players_map[players[index - 1]] += 1 players[index - 1], players[index] = players[index], players[index - 1] return players 계속 find 명령을 쓰면 시간이 너무 오래 걸린다...
-
프로그래머스 / 과제 진행하기코딩 테스트/Level 2 2023. 4. 1. 13:22
https://school.programmers.co.kr/learn/courses/30/lessons/176962 파이썬 def solution(plans): timeline = [] plans2 = map(lambda x: (x[0], int(x[1][0]) * 60 + int(x[1][1]), x[2]), map(lambda x: (x[0], x[1].split(':'), int(x[2])), plans)) for name, start, playtime in sorted(plans2, key=lambda x: x[1]): for index, each in enumerate(timeline): if each[1] > start: timeline[index][1] += playtime timeline...
-
프로그래머스 / 추억 점수코딩 테스트/Level 1 2023. 4. 1. 07:47
https://school.programmers.co.kr/learn/courses/30/lessons/176963 파이썬 def solution(name, yearning, photo): scores = {n: s for n, s in zip(name, yearning)} return [sum(scores.get(person, 0) for person in pic) for pic in photo] def solution(name, yearning, photo): return [sum({n: s for n, s in zip(name, yearning)}.get(person, 0) for person in pic) for pic in photo] 코틀린 class Solution { fun solution..
-
프로그래머스 / 광물 캐기코딩 테스트/Level 2 2023. 3. 24. 15:21
https://school.programmers.co.kr/learn/courses/30/lessons/172927 파이썬 제안사항을 확인하니 재귀를 이용해도 될 정도 def solution(picks, minerals): def solve(picks, minerals, fatigue): if sum(picks) == 0 or len(minerals) == 0: return fatigue result1 = result2 = result3 = float('inf') if picks[0] > 0: fatigues = {"diamond": 1, "iron": 1, "stone": 1} next_fatigue = sum(fatigues[mineral] for mineral in minerals[:5]) resu..