본문 바로가기

Problem Solving/Programmers5

카카오 코딩테스트 "2021" - "순위검색" 문제풀이 (Python) https://school.programmers.co.kr/learn/courses/30/lessons/72412 from collections import defaultdictfrom itertools import combinationsfrom bisect import bisect_leftdef combi_info(info_key): result = [] for num in range(5): for part_key in combinations(info_key, num): result.append(''.join(part_key)) return resultdef solution(info, query): answer = [] info_dict = .. 2025. 10. 9.
카카오 코딩테스트 2021 - "합승 택시 요금" 문제풀이 (Python) https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr from collections import defaultdictimport heapqdef edges_to_graph(fares): graph = defaultdict(list) for node1, node2, cost in fares: graph[node1].append((node2, cost)) graph[node2].append((node1, cost)) return graph def dijkstra.. 2025. 10. 9.
카카오 코딩테스트 2021 - "카드 짝 맞추기" 문제풀이 (Python) https://school.programmers.co.kr/learn/courses/30/lessons/72415 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 📌 문제 이해4*4 보드 위에 짝이 있는 카드들이 놓여 있고,커서를 이동하며 카드를 뒤집어 모든 짝을 맞추는 최소 키 입력 회수를 구하는 문제이다. -방향키, Ctrl+방향키, Enter키 = 1회 조작-같은 그림 카드 2개를 모두 뒤집으면 카드가 사라짐-모든 카드를 사라지게 하는데 필요한 조작 횟수의 최솟값은? 📌 문제 해결최단 거리로 모든 카드를 제거하는 최소 조작 횟수를 찾는 문제이다. BFS + DFS (backtracking) 로 해결하면.. 2025. 10. 9.
카카오 코딩테스트 2022 - "양과 늑대" 문제풀이 (Python) https://school.programmers.co.kr/learn/courses/30/lessons/92343 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr -양의 수가 늑대의 수보다 많은가? (종료조건)-현재 방문 가능한 노드 중 아직 방문하지 않은 노드 모두 탐색 완전탐색 문제이다. 방문할 수 있는 노드를 다 방문해보고 가장 최대 양의 수를 구하면 된다.DFS + 백트래킹으로 풀어야하는 문제다. def dfs(x, y): if (x, y) == 목표: print("도착!") return for nx, ny in 이동가능좌표: if 안전하고 방문 안 했다면.. 2025. 10. 9.
[프로그래머스] "네트워크" (+파이썬 코드) Question. 프로그래머스 깊이/너비 우선 탐색(DFS/BFS) > 네트워크 Answer. computers라는 인접행렬(adjacency matrix) graph가 주어지는데, 해당 graph에서 connected component가 몇 개인지 구하는 문제이다. bfs로 풀 수도 있고, dfs로 풀 수도 있다. 주어진 인접행렬을 이용해 DFS로 풀면 다음과 같다. sol1) 인접행렬 + dfs 1) i번째 노드를 방문하지 않았다면, 스택에 i번째 노드를 넣는다.2) stack의 요소를 하나씩 pop 하며 visited 배열에 해당 노드를 true 처리한다.3) 해당 노드와 연결된 노드들 중 방문하지 않은 노드들을 스택에 넣어준다.---> dfs 함수 부분 4) 1~3을 n개의 노드에 대해 반복한.. 2021. 2. 14.
728x90