BOJ 2

18352. 특정 거리의 도시 찾기 - 파이썬. BFS, 큐

1. 사용한 알고리즘 | 자료 구조 BFS 큐 2. 풀이 접근 방식 전형적인 BFS 문제입니다. K회 만큼 BFS 연산 후 Queue 에 있는 값을 정렬, 출력합니다. 3. 특이사항 Stack 2개를 스왑하는 방식으로 사용하여 deque 를 import 하지 않고 BFS 알고리즘을 구현할 수 있습니다. 4. 언어 | 실행시간 | 메모리 사용량 Python3 | 1264ms | 97164kb from sys import stdin def solution(): # 1. 입력 # N: 정점의 수 | M: 간선의 수 # K: BFS 연산 횟수 | X: BFS 연산 시작점 N, M, K, X = map(int, stdin.readline().split()) # 2. 선언 # 2-1. paths: 간선 정보 pat..

21608. 상어 초등학교 - 구현, 시뮬레이션, counter sort, 해시 테이블. 파이썬

사용한 알고리즘/자료구조 델타를 이용한 2차원 배열 탐색 counter sort 해시 테이블(딕셔너리) 접근한 방법 학생의 위치를 정할 때마다 모든 좌표를 순회하며 주위 4 칸의 좌표 정보를 확인하는 브루트포스 알고리즘으로도 정답 처리를 받을 수 있습니다. 하지만 이런 브루트포스 방식은 O(4*(N**2))의 시간 복잡도를 가진, 굉장히 비효율적인 알고리즘입니다. A학생의 자리를 배정한다고 생각해봅시다. A학생이 좋아하는 학생들 중 한 명 이상이 이미 교실에 앉아있다고 하면, 우리는 이 학생이 좋아하는 학생들 근처 자리들만 조회한 후 우선순위를 계산하면 됩니다. 이 연산을 위해 딕셔너리를 활용합니다. 딕셔너리는 두 개를 사용합니다. 각 학생이 좋아하는 학생들의 정보를 담은 딕셔너리 학생 '주변 자리 좌표..

BOJ/구현 2021.10.25