프로그래머스 118

프로그래머스(Python) 1844번 게임 맵 최단거리 풀이

Python으로 구현한 1844번 게임 맵 최단거리 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr from collections import deque def bfs(arr, x, y) : q = deque() dx = [0, 1, 0, -1] dy = [1, 0, -1, 0] q.append((x, y)) while q : cx, cy..

프로그래머스(Python) 42577번 전화번호 목록 풀이

Python으로 구현한 42577번 전화번호 목록 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr def solution(phone_book) : phone_book.sort() for i in range(len(phone_book) - 1) : index = len(phone_book[i]) if phone_book[i] in phone_book[i+1][:index] : return ..

프로그래머스(Python) 17677번 [1차] 뉴스 클러스터링 풀이

Python으로 구현한 17677번 [1차] 뉴스 클러스터링 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr def solution(str1, str2) : update_str1 = [] for i in range(len(str1) - 1) : if str1[i].isalpha() and str1[i+1].isalpha() : temp_str1 = str1[i:i+2]...

프로그래머스(Python) 77485번 행렬 테두리 회전하기 풀이

Python으로 구현한 77485번 행렬 테두리 회전하기 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr def rotate(data, start_x, start_y, end_x, end_y) : info = [data[start_x-1][start_y-1]] # start_x 열 for i in range(start_y, end_y) : info.append(data[st..

프로그래머스(Python) 12973번 짝지어 제거하기 풀이

Python으로 구현한 12973번 짝지어 제거하기 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr def solution(s) : stack = [] for value in s : if not stack : stack.append(value) else : if stack[-1] == value : stack.pop() else : stack.append(value) if sta..

프로그래머스(Python) 42626번 더 맵게 풀이

Python으로 구현한 42626번 더 맵게 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr import heapq def solution(scoville, K) : answer = 0 target = [] for value in scoville : heapq.heappush(target, value) while target[0] < K : try : heapq.heappush(..

프로그래머스(Python) 12899번 124 나라의 숫자 풀이

Python으로 구현한 12899번 124 나라의 숫자 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr def solution(n) : answer = '' while n > 0 : if n % 3 == 0 : answer += str(4) n = n // 3 - 1 else : answer += str(n % 3) n = n // 3 return answer[::-1] 1. 3진법을 사용하며, n이 0 이하가 될 때까지 while문을 통해 반복 작업을 수행한다. 작업은 아래와 같다. - 만약 현재의 n 값이 3의 배수일 경우 answer에 4를 이어붙이고 n을 ..

프로그래머스(Python) 42747번 H-Index 풀이

Python으로 구현한 42747번 H-Index 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr def solution(citations) : answer = 0 for count in range(1, len(citations) + 1) : up, down = 0, 0 for i in range(len(citations)) : if citations[i] >..

프로그래머스(Python) 12939번 최댓값과 최솟값 풀이

Python으로 구현한 12939번 최댓값과 최솟값 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12939 코딩테스트 연습 - 최댓값과 최솟값 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 programmers.co.kr def solution(s) : answer = '' s = list(map(int, s.split())) answer += str(min(s)) + " " answer += str(max(s)) return answer 1. 전달받은 s 문자열을 공백으로 기준으로 ..

프로그래머스(Python) 12945번 피보나치 수 풀이

Python으로 구현한 12945번 피보나치 수 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12945 코딩테스트 연습 - 피보나치 수 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = programmers.co.kr def solution(n): answer = [0, 1, 1] for i in range(3, n + 1) : answe..