[Python] 1753 - 최단경로 (골드4)
·
Coding Test/Solution
1. 문제 설명 https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net 다익스트라 알고리즘은 아직도 명확하게 머리에 잡히지 않은 알고리즘 중 하나다. 사용엔 지장이 없는데 누가 설명해달라고 하면 자신이 없는 단계 블로그 포스팅 끝나면 문제 몇 개 더 풀어봐야겠다. 2. 아이디어 문제를 읽자마자 다익스트라 알고리즘을 쓰면 되겠다 싶어서 썼는데 시간 초과가 났다. 인접 행렬로 최단 거리 노드를 갱신하려니 리스트가 너무..
[Python] 14940 - 쉬운 최단거리 (실버1)
·
Coding Test/Solution
1. 문제 설명 https://www.acmicpc.net/problem/14940 14940번: 쉬운 최단거리 지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이 www.acmicpc.net 2. 아이디어 brute-force seach(BFS)를 공부했다면 쉽게 해결할 수 있는 문제. 처음에 우선 visited를 -1로 초기화 하고 input값을 스캔하면서 시작점 위치를 저장하고 도달할 수 없는 지역은 0으로 할당 시켜놓고 시작하면 끝난다. 3. 코드 import sys from collections import deque..
[Python] 1991 - 트리 순회 (실버1)
·
Coding Test/Solution
1. 문제 설명 https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net 2. 아이디어 트리에 대해 아직 개념이 생소하면 어려울 수 있지만, 사실 그냥 재밌는 문제. 전위 순회: root -> 왼쪽 자식 -> 오른쪽 자식 중위 순회: 왼쪽 자식 -> root -> 오른쪽 자식 후위 순회: 왼쪽 자식 -> 오른쪽 자신 -> root 이 순서로 트리를 탐색하는게 끝이다. 3. 코드 import sys input = sys.stdin.readlin..
[Python] 13414 - 수강신청 (실버3)
·
Coding Test/Solution
1. 문제 설명 https://www.acmicpc.net/problem/13414 13414번: 수강신청 입력 데이터는 표준 입력을 사용한다. 입력은 1개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 과목의 수강 가능 인원 K(1 ≤ K ≤ 100,000)와 학생들이 버튼을 클릭한 순서를 기록한 대기목 www.acmicpc.net 2. 아이디어 중복을 체크하면서 순서까지 정해줄 수 있을만한 자료형이 뭘까 하다가 딕셔너리를 사용했다. 파이썬을 사용해본지 한 달도 채 안 되던 때라 문제보단 dict 사용법 찾아다니느라 오래 걸렸었다. 딕셔너리 말고 다른 좋은 방법도 충분히 많겠지만, 난 모르겠다~~~ 3. 코드 import sys input = sys.stdin.readline # 딕셔너리 자료구조..