Zero to Hero
article thumbnail
2021번: 최소 환승 경로
Algorithm 2021. 8. 15. 17:16

2021번: 최소 환승 경로 첫째 줄에 역의 개수 N(1≤N≤100,000), 노선의 개수 L(1≤L≤100,000)이 주어진다. 다음 L개의 줄에는 각 노선이 지나는 역이 순서대로 주어지며 각 줄의 마지막에는 -1이 주어진다. 마지막 줄에는 출발 www.acmicpc.net import sys from collections import deque, defaultdict r = sys.stdin.readline node_num, flag_num = map(int, r().split()) graph = defaultdict(set) for i in range(1, flag_num + 1): temp = list(map(int, r().split())) temp.pop() for node in temp: g..

2174번: 로봇 시뮬레이션
Algorithm 2021. 4. 18. 17:37

1. 소스 코드 import sys from collections import deque r = sys.stdin.readline width, height = map(int, r().split()) robot_num, command_num = map(int, r().split()) board = [[0] * width for _ in range(height)] robots = {} for i in range(robot_num): y, x, direction = r().split() ny = int(y) - 1 nx = height - int(x) robots[i + 1] = [nx, ny, direction] board[nx][ny] = i + 1 commands = [] for i in range(co..

13549번: 숨바꼭질 3
Algorithm 2021. 4. 15. 15:04

13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net import sys from collections import deque r = sys.stdin.readline src, dst = map(int, r().split()) visited = set() q = deque([]) q.append((src, 0)) result = 0 while q: cur_pos, cur_val = q.popleft() if cur_pos == dst: result = cur_val break if 0

1781번: 컵라면 (Python)
Algorithm 2021. 1. 10. 18:26

문제 링크 1781번: 컵라면 상욱 조교는 동호에게 N개의 문제를 주고서, 각각의 문제를 풀었을 때 컵라면을 몇 개 줄 것인지 제시 하였다. 하지만 동호의 찌를듯한 자신감에 소심한 상욱 조교는 각각의 문제에 대해 데드라 www.acmicpc.net 접근 방법 1. N이 200,000이기 때문에 순열로 모든 경우를 고려하는 것은 시간 초과 2. 특정 상황에서 가장 큰 컵라면 값을 뽑아내야 하기 때문에 우선순위 큐 사용 3. 입력된 문제를 시간순 오름차순, 컵라면 값 내림차순 정렬해 deque에 넣는다. 4. deque에서 값을 뽑아내면서 현재 시간보다 데드라인이 크거나 같은 문제의 컵라면 값을 우선순위 큐에 넣어줌 5. 만약에 우선순위 큐의 peek 값이 현재 문제의 컵라면 값보다 작다면 우선순위 큐에서 ..

article thumbnail
3954번: Brainf**k 인터프리터 (데이터 추가, 최신 버전, Python)
Algorithm 2021. 1. 2. 15:52

문제 링크 3954번: Brainf**k 인터프리터 각 테스트 케이스에 대해서, 프로그램이 종료된다면 "Terminates"를, 무한 루프에 빠지게 된다면 "Loops"를 출력한다. 무한 루프에 빠졌을 때는, 프로그램의 어느 부분이 무한 루프인지를 출력한다. ([ www.acmicpc.net 문제 개요 질문 게시판을 보면 알 수 있지만 문제 설명도 수정되었었고, 테스트 케이스의 빈틈을 노린 코드들이 재채점 되어 글을 작성하는 날 기준으로 solved.ac 랭크 골드 1 임에도 불구하고 맞은 사람 34명, 정답률 9%를 기록하고 있다. 다시 말해서 구글 검색을 통해 위 문제에 대한 코드를 올린 블로그는 거의 다 틀린 코드고, 이 때문에 모든 검색 방법을 총동원해서 거의 50번 가까이 제출을 하면서 통과한 ..

Python 코딩 테스트 기본 템플릿(백준, 프로그래머스, SWEA)
Algorithm 2020. 12. 20. 10:31

백준 import sys # 재귀 depth를 늘려줌 sys.setrecursionlimit(10 ** 9) # 파일 입출력 r = sys.stdin.readline # int 하나 입력 받기 length = int(r()) # list 입력 받기 list1 = list(map(int, r().split())) # 문자열 입력받기 string1 = r().rstrip() 백준은 입력부터 출력까지 전부 다 작성해줘야 한다. 하지만 표준 라이브러리에 해당하는 모든 것을 사용할 수 있다. 표준 입출력보단 속도가 훨씬 빠른 파일 입출력으로, 재귀 depth도 늘려준 뒤 사용한다. 프로그래머스 # 여기에 사용할 라이브러리를 선언해줌 def solution(answers): answer = [] return ans..