문제풀기(63)
-
프로그래머스 : 섬 연결하기
https://programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 전형적인 크루스칼 알고리즘이다. https://cseella.tistory.com/117?category=940613 (4번에 크루스칼 알고리즘) import heapq def find_parent(parent,a): if parent[a] != a: parent[a] = find_parent(parent,parent[a]) return parent[a] def union_parent(parent,a,b): a = find_parent(parent,a) b =..
2021.10.19 -
프로그래머스 : 단어 변환
https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr target이 words안에 없으면 바로 0을 리턴합니다. 그리고 begin이 words안에 없으면 words에 넣어줍니다. (BFS시, 편리함을 위해서) 이 후, words안에서 서로 한 글자만 차이나는 아이들은 서로 변환이 가능하기 때문에, graph에 넣어서 이어줍니다. 이 후, BFS 실행 from collect..
2021.10.19 -
프로그래머스 : 다리를 지나는 트럭
https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr 시키는대로 구현을 잘 하면 된다. 현재 무게와 트럭이 몇 대 있는지 꼭 확인해야한다. def solution(bridge_length, weight, truck_weights): answer = 1 now_weight = 0 now_trucks = 0 start_times = [0] * len(truck_weights) i = 0 wh..
2021.10.19 -
프로그래머스 : 2020 카카오 공채 블록 이동하기
https://programmers.co.kr/learn/courses/30/lessons/60063 코딩테스트 연습 - 블록 이동하기 [[0, 0, 0, 1, 1],[0, 0, 0, 1, 0],[0, 1, 0, 1, 1],[1, 1, 0, 0, 1],[0, 0, 0, 0, 0]] 7 programmers.co.kr DFS를 곁들인 빡구현...이다 그냥 잘 돌려주면서 이동시켜주면 된다. 의외로 생각보다는 어렵지는 않았다. 근데 시간은 오래걸림...ㅎ 한 시간 조금 넘게 걸렸다....ㅠㅠ import heapq def solution(board): answer = 0 n = len(board) visitied = [[0 for _ in range(n)] for _ in range(n)] visits = [..
2021.10.14 -
★프로그래머스 2021 카카오 채용연계형 인턴십 표 편집
https://programmers.co.kr/learn/courses/30/lessons/81303 코딩테스트 연습 - 표 편집 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z"] "OOOOXOOO" 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"] "OOXOXOOO" programmers.co.kr 처음 풀이 방법 단순하게 구현으로 풀이하였다. 역시 시간 초과..... def solution(n, k, cmd): answer = "" deleted = [False] * (n) delete = [] move = 0 for cstr in cmd: if len(cstr) > 1: command, index = c..
2021.10.13 -
프로그래머스 베스트 앨범
https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 파이썬의 heapq는 최소 힙이기 때문에 정렬에 사용할 값에 마이너스를 붙여주면 최대 힙으로 활용할 수 있다. import heapq def solution(genres, plays): answer = [] genre_array = dict() genre_total = [] for i in range(len(genres)): if genres[i] not in..
2021.10.12