본문 바로가기

Tech/Problem Solving

[프로그래머스] 2017 카카오코드 본선 - 리틀 프렌즈 사천성 (Java) 문제 링크 코딩테스트 연습 - 리틀 프렌즈 사천성 리틀 프렌즈 사천성 언제나 맛있는 음식들이 가득한 평화로운 푸드 타운. 푸드 타운에서 행복하게 사는 리틀 프렌즈들은 마을에 있는 매직 스푼을 보물처럼 보관하고 있다. 매직 스푼은 재료만 programmers.co.kr 문제 설명 리틀 프렌즈 사천성 언제나 맛있는 음식들이 가득한 평화로운 푸드 타운. 푸드 타운에서 행복하게 사는 리틀 프렌즈들은 마을에 있는 매직 스푼을 보물처럼 보관하고 있다. 매직 스푼은 재료만 준비해서 냄비에 넣고 휘젓기만 하면 순식간에 최고의 요리로 만들어주는 신비의 아이템. 어느 날 매직 스푼을 호시탐탐 노리는 악당들이 보물을 훔쳐간다. 매직 스푼을 되찾고 다시 마을에 평화를 가져오기 위해 프렌즈의 대모험이 시작되는데... 리틀 프렌..
[프로그래머스] 카카오 블라인드 리쿠르트 2018 - 셔틀 버스 (Python) 코딩테스트 연습 - [1차] 셔틀버스 10 60 45 ["23:59","23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59"] "18:00" programmers.co.kr 카카오에서는 무료 셔틀버스를 운행하기 때문에 판교역에서 편하게 사무실로 올 수 있다. 카카오의 직원은 서로를 '크루'라고 부르는데, 아침마다 많은 크루들이 이 셔틀을 이용하여 출근한다. 이 문제에서는 편의를 위해 셔틀은 다음과 같은 규칙으로 운행한다고 가정하자. 셔틀은 09:00부터 총 n회 t분 간격으로 역에 도착하며, 하나의 셔틀에는 최대 m명의 승..
[프로그래머스] 기지국 설치 - Python 코딩테스트 연습 - 기지국 설치 N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5 programmers.co.kr 문제 설명 N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5g 기지국은 4g 기지국보다 전달 범위가 좁아, 4g 기지국을 5g 기지국으로 바꾸면 어떤 아파트에는 전파가 도달하지 않습니다. 예를 들어 11개의 아파트가 쭉 늘어서 있고, [4, 11] 번째 아파트 옥상에는 4g 기지국이 설치되어 ..
[프로그래머스] 카카오 블라인드 리쿠르트 2021 - 합승 택시 요금 (Python) 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 밤늦게 귀가할 때 안전을 위해 항상 택시를 이용하던 무지는 최근 야근이 잦아져 택시를 더 많이 이용하게 되..
[프로그래머스] 조이스틱 - Python 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다 programmers.co.kr 문제 설명 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다음 알파벳 ▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로) ◀ - 커서를 왼쪽으로 이동 (첫 번째 위치에서 왼쪽으로 이동하면 마지막 문자에 커서) ▶ - 커서를 오른쪽으로 이동 예를 들어 아래의 방법으로 "JAZ"를 만들 수..
[프로그래머스] 카카오 블라인드 리쿠르트 2021 - 순위 검색 (Python) 순위 검색 from collections import defaultdict from itertools import combinations from bisect import bisect_left def solution(infos, queries): answer = [] tables = defaultdict(list) for info in infos: data = info.split(' ') conditions = data[:-1] score = int(data[-1]) for n in range(5): key_comb = list(combinations(conditions, n)) for k in key_comb: key = ''.join(k) tables[key].append(score) for i in..
[리트코드(LeetCode)] 33 Search in Rotated Sorted Array Search in Rotated Sorted Array - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com - 를 학습하면서 수록된 코드를 참고하였습니다. - 풀이 특정 피벗을 기준으로 회전하여 정렬된 배열로, 완전하게 정렬이 되어 있지 않아 일반적인 이진 탐색을 그대로 활용하기는 어려웠음. 먼저 피벗을 찾고, 배열이 피벗값만큼 회전되었음을 고려하여 이진 탐색을 적용하는 순서를 문제를 도출해야 했다. 피벗을 찾는 방법은 여러 가지가 있지만, 예시 입력 배열을 보면..
[리트코드(LeetCode)] 310 Minimum Height Trees - Python Minimum Height Trees - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com - 를 학습하면서 수록된 코드를 참고하였습니다. - 풀이 시간초과가 나서 풀이에 성공하지 못한 문제. 모든 엣지를 루트로 두고 탐색하기엔 비효율적이라고 생각해서 루트가 되면 확실히 높이가 길어질 것 같은 리프노드는 제외시키고 탐색을 하는 방법을 택했다. 딕셔너리 구조를 이용해 각 엣지와 연결된 다른 엣지들을 리스트 형태로 저장한다. 이 때, 해당 엣지가 리프노드라면 리스트의 ..