입출력 2

Online Judge Runtime Error (RE/RTE) 원인: I/O

로컬 PC에서 돌려보면 테스트 케이스 답도 맞았는데 자꾸 RTE가 뜨는 경우, I/O 문제를 고려해 보자. OJ (Online Judge)는 입출력 형태가 다양해서 이를 잘 대응하는 방법을 알아야 여기서 RTE 해결하느라 많은 시간 안쓰고 본 문제 푸는데 집중해서 실력을 키울 수 있다. 나도 여러 번 삽질(?)을 해서 알아낸 것으로, 입력 유형별로 좋은 I/O를 정리해 보겠다. Python 3 기준이다. input() 쓰지 말자 왜냐고? RTE가 잘 난다. 예를 들어, UVa 352 의 경우 다음과 같은 입력 자료를 다뤄야 한다. 전형적인 EOF 문제이다. 자료를 설명하면, 먼저 n by n 행렬의 n을 나타내는 숫자가 나오고 그 뒤에 행렬의 자료가 문자열로 입력된다. 그 다음 케이스가 같은 형태로 이어..

Soft Talks 2022.11.27

오류노트

코테를 풀다보면 입출력을 포함해서 많은 자잘한 실수를 겪게 되는데, 이것 해결에 쓰는 시간을 줄이는 것이 실제로 많은 시간 확보를 해 주는 주요 비결이다. 여기서는 자주 범하는 실수를 모아두고 계속 업데이트 하겠다. 1. 문자열 입출력 ######## #..#...# ####.#.# #..#...# ######## 위와 같은 문자열 입력시 혹시 (줄 수 n=5, 열 수 m=8는 주어짐) 아래처럼 하는가? array = [input().split() for _ in range(n)] 이러면 다음처럼 입력이 된다. [['########'], ['#..#...#'], ['####.#.#'], ['#..#...#'], ['########']] 정말 바보같은 일이다. 왜냐면 문자열은 그 자체로 배열인데, 이것을 ..

Soft Talks 2022.05.11