➊에서 읽어온 데이터는 ➋를 거치면서 처음부터 마지막 줄까지 한 줄씩 아래로 읽힙니다. 따라서 ➌의 for 반복문이 끝난 후에는 더 이상 읽을 수 있는 데이터가 없습니다. 그런 상태에서 ➍~➎에서 다시 데이터를 읽으려고 하니 읽을 데이터가 없는 것이지요.
이 문제를 해결할 수 있는 방법은 여러 가지가 있지만, 그중 하나는 데이터를 리스트로 저장하는 것입니다. 다음 코드를 next() 함수 다음 줄에 추가합니다.
data = list(data)
이 코드를 추가한 후 다시 실행을 시켜보면 데이터가 잘 출력되는 것을 볼 수 있습니다.
실행 결과
['서울특별시 (1100000000)', '9765623', '9765623', '54719', '60805', '67262', '71433', '70251', '69728', '76957', '73813', '74748', '70652', '75180', '79733', '74074', '71698', '79681', '82773', '83012', '92791', '108139', '108040', '114742', '122499', '129725', '141389', '150560', '156527', '165963', '165471', '153068', '149846', '149513', ' (생략)
TIP
이렇게 알고리즘을 생각할 때는 생각지도 못했던 크고 작은 문제들이 계속 생기는 것을 볼 수 있습니다. 그리고 이런 문제들을 해결할 때는 혼자 고민하는 것도 중요하지만, 온오프라인의 친구들 또는 인터넷 검색(흔히 ‘구글링’이라고 말합니다)을 잘 하는 것도 중요합니다.
계속해서 알고리즘을 구현하겠습니다.