반응형
백준 1764 파이썬 문제 풀이
문제 링크
https://www.acmicpc.net/problem/1764
1764번: 듣보잡
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.
www.acmicpc.net
문제
입력
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 알파벳 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이다.
듣도 못한 사람의 명단에는 중복되는 이름이 없으며, 보도 못한 사람의 명단도 마찬가지이다.
출력
듣보잡의 수와 그 명단을 사전순으로 출력한다.
제출 코드
a, b = map(int, input().split())
hear = set()
see = set()
cnt = 0
for i in range(a):
hear.add(input())
for i in range(b):
see.add(input())
result = sorted(list(hear & see))
print(len(result))
for i in result:
print(i)
오답 코드
더보기
a, b = map(int, input().split())
hear = []
cnt = 0
result = []
for i in range(a):
hear.append(input())
for i in range(b):
see = input()
if hear.count(see) >= 1:
result.append(see)
cnt += 1
print(cnt)
for i in result:
print(i)
문제점 - 시간 초과, 출력형식
해결 방법
1. input을 sys.stdin.readline으로 변경 - 출력형식 에러 발생(개행문자)
2. 사전순으로 출력해야하기 때문에 sorted를 이용하여 정렬해주기
어려웠던 점
1. 시간 초과 해결
2. set, list의 특성을 잘 이해를 못했음
반응형
'Python > 알고리즘 - 백준' 카테고리의 다른 글
백준 11399 파이썬 문제 풀이 (0) | 2023.09.25 |
---|---|
백준 11047 파이썬 문제 풀이 (0) | 2023.09.25 |
백준 1620 파이썬 문제 풀이 (0) | 2023.09.22 |
백준 11723 파이썬 문제풀이 (0) | 2023.09.21 |
다이나믹 프로그래밍 (0) | 2023.09.12 |