시간초과

Algorithem/백준 PS with code

백준 #1987 - [G4] 알파벳 : 백트래킹, 시간초과

(python3) 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 백트래킹 전형적인 dfs 백트래킹으로 해결할 수 있습니다. 매번 4방향으로 재귀를 돌고, 들렀던 알파벳을 만나면 끝내는 방식으로 적용합니다. 시간초과 이미 들렀던 알파벳을 어떻게 확인할것인가? 부분에서 어떤 방식과 자료구조를 취하느냐에 따라 시간초과가 발생할 수 있습니다. 저는 3가지 방식을 적용해봤습니다. 1. deque : 들렀던 알파벳을 deque 에 append 하고, 백트래킹에서 빠져나올때 pop 하는 형식. in 으로 들렀..

Algorithem/백준 PS with code

백준 #10989 - [B1] 수 정렬하기 : 계수정렬(counting sort)

(python3) 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 메모리 초과와 계수정렬 8MB 의 메모리 제한과 5초의 시간제한이 발목을 잡는 문제입니다. 브론즈 티어로 잡혀있지만 풀이가 제한적이라 여러모로 까다로운 문제였습니다. 8MB의 용량 제한이 있고, 최대 10,000,000 개의 수가 주어집니다. 파이썬 int 사이즈가 기본적으로 8바이트이기 때문에 8MB에서는 최대 1,000,000 개를 저장할 수 있겠네요. 주어진 int 를 다 저장해서 정렬하기엔 용량이 한참 부족합니다. 주어진 수가 10,000 이하인 자연수인데 ..

jamong5
'시간초과' 태그의 글 목록