코딩테스트(89)
-
프로그래머스 타겟 넘버 코드 및 해설 (파이썬)
https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 먼저 numbers의 모든 숫자를 더한 값을 total로 놓고, total이 target과 같으면 모든 부호를 +로 하는 한 가지 방법밖에 없으므로 1을 반환합니다. 그 외의 total이 target보다 큰 경우엔 부호를 -로 바꿔야 하는 숫자들의 조합을 알아냅니다. total과 target의 차이를 2로 나..
2021.06.01 -
프로그래머스 여행경로 코드 및 해설 (파이썬)
programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 💡 재귀함수를 이용해 풀이했습니다. 재귀함수 __help 내에선 아직 사용하지 않은 티켓들의 리스트를 하나씩 확인하면서, 마지막으로 방문한 공항에서 출발하는 티켓들을 확인합니다. 이에 해당하는 모든 티켓들에 대해 다시 재귀함수를 호출하는데, 이때 tickets에서 현재 티켓은 제외하고, answer에는 현재 티켓의 도착 공항을 추가하여 호출합..
2021.04.29 -
프로그래머스 베스트앨범 코드 및 해설 (파이썬)
programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 💡 2개의 딕셔너리(장르별 총 재생횟수, 장르별 노래의 고유번호 및 해당 노래의 재생횟수)를 이용해 풀이했습니다. song_dict[장르] = [노래의 고유 번호, 재생 횟수]들의 리스트 genre_dict[장르] = 해당 장르의 총 재생 횟수 이렇게 두 가지 딕셔너리를 만들어 풀이했습니다. 우선 song_dict의 각 장르 내에서 재생 횟수가 많은 순으로 정렬했고, gen..
2021.04.27 -
프로그래머스 영어 끝말잇기 코드 및 해설 (파이썬)
programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0] programmers.co.kr 💡 index를 n으로 나눈 몫과 나머지를 활용했습니다. 주어진 words를 for 문으로 하나씩 ..
2021.04.26 -
프로그래머스 괄호 회전하기 코드 및 해설 (파이썬)
programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr 💡 stack을 이용해 올바른 괄호인지 아닌지 판단했습니다. 우선 소괄호, 중괄호, 대괄호가 섞여 있는 string을 입력으로 받아 올바른 괄호인지 아닌지 판단하는 is_correct 함수를 정의했습니다. 닫는 괄호를 key, 그에 상응하는 여는 괄호는 value로 갖는 parenthesis라는 딕셔너리를 만들고, (1) input의 시작이 닫는 괄호면 바로 False를 반환하도록 했습니다. (2) 그 외의 경우엔 stack을 만들어 input의 하나씩 받으면서 (2-1) 닫는 괄호고 stack에 pop할 것이 있는 경우, 현재의 닫는 괄호와 대응하는 ..
2021.04.26 -
프로그래머스 더 맵게 코드 및 해설 (파이썬)
programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 💡 힙(heap)을 사용하여 풀이했습니다. heapify로 input을 오름차순으로 정렬하고, 가장 맵지 않은 것들 순서대로 2개를 뽑아(pop) 새로운 스코빌 지수를 계산합니다. 이렇게 새로 계산한 스코빌 지수를 input에 push합니다. 이때, input의 길이가 짧아 2개를 뽑지 못할 수 있으니, 이땐 문제에 명시된 대로 -1을 반환하도록 해줍니다. imp..
2021.04.25