티스토리 뷰

백준

백준 1764 문제풀이 [python]

ys.k 2023. 7. 30. 23:56

포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.

문제를 보자.

시간 초과 2번과, 2번의 오답 후 풀어낼 수 있었다.
 
코드부터 보자
 
코드

import sys as s
n,m = map(int,s.stdin.readline().split())
array, array2={},[]
count = 0

for i in range(n):
    name = s.stdin.readline().strip()
    array[name] = 0
   
for j in range(m):
    name = s.stdin.readline().strip()
    if name in array:
        count += 1
        array2.append(name)
array2.sort()

print(count)
for i in array2:
    print(i)

시간 초과를 발생시킨 건, 해쉬테이블 대신 list를 사용했고, 입력을 input()으로 받았기에 발생했을 거라 추측한다.
 
따라서 해당 부분을 수정하여서 제출했다.
 
그리고 오답을 받았다.
 
오답에 해당하는 부분은, 사전순으로 출력하라는 조건을 무시했었기에 발생했고, array2.sort() 함수를 통해 조건을 맞추어 줬다.
 
배운 점
1. sys.stdin.readline() // 함수는 이름 그대로 line(한 줄)을 읽어오기 때문에, 개행문자까지 받아온다.
   따라서 strip() 함수를 통해 개행문자를 제거 후, 값을 사용해야 온전한 입력값을 저장할 수 있다.

'백준' 카테고리의 다른 글

백준 13909 문제풀이 [python]  (0) 2023.08.03
백준 1620 문제풀이 [python]  (0) 2023.07.31
백준 10816 문제풀이 [python]  (0) 2023.07.29
백준 7785 문제풀이 [python]  (0) 2023.07.25
백준 14425 문제풀이 [python]  (0) 2023.07.25
댓글