[프로그래머스] 순위 (Python)
https://programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 1. 승패 결과로부터 승자와 패자 정보를 그래프에 담는다. 2. A에게 이긴 선수는 A가 이긴 선수도 이긴다. 3. A에게 진 선수는 A를 이긴 선수에게도 진다. 4. A와 승패가 결정된 사람의 수가 전체 선수 -1 이면 answer에 추가해줌 나의 풀이 def solution(n, results): answer = 0 graph = [[set() for _ in range(2)] for _ in range(n+1)] for result in results: # 승자 ..
2021. 11. 8.
[프로그래머스] 가장 먼 노드 (Python)
https://programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 다익스트라 알고리즘으로 구현해서 풀면 된다. 무방향 그래프이기 때문에 양쪽 방향으로 이동 가능한 것을 설정해줘야 함. 나의 풀이 from collections import deque def solution(n,vertex): graph = [[] for _ in range(n+1)] visited = [0 for _ in range(n+1)] for ver in vertex: graph[ver[0]].append(ver[1]) gr..
2021. 11. 8.
[프로그래머스] 행렬의 곱셈 (Python)
https://programmers.co.kr/learn/courses/30/lessons/12949 코딩테스트 연습 - 행렬의 곱셈 [[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]] programmers.co.kr 행렬의 곱셈을 구현하면 됨, 뭔가 손 가는 대로 해서 이상한 감이 있는 것 같다. 나의 풀이 def solution(arr1, arr2): arr3 = [[0]*len(arr2) for _ in range(len(arr2[0]))] for i in range(len(arr3)): for j in range(len(arr3[0])): arr3[i]..
2021. 11. 7.
[프로그래머스] 압축 (Python)
https://programmers.co.kr/learn/courses/30/lessons/17684 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr 주어진 조건대로 구현하면 된다. from collections import defaultdict def solution(msg): alphabet ='ABCDEFGHIJKLMNOPQRSTUVWXYZ' answer = [] dict = defaultdict(int) for i,alpha in enumerate(alphabet): dict[alpha] = i+1 start, end, va..
2021. 11. 6.