https://www.acmicpc.net/problem/22233
1. 내가 작성한 코드
set 을 이용해서 문제를 해결하려고 했는데 시간초과로 자꾸 실패해서 딕셔너리로 해결했다.
import sys
input = sys.stdin.readline
n,m = map(int, input().split())
keyword = {}
for i in range(n):
keyword[input().rstrip()] = 1
for i in range(m):
rmv = input().rstrip().split(",")
for i in rmv:
if i in keyword:
keyword.pop(i)
print(len(keyword.keys()))
1. 메모장에 있는 키워드를 keyword 딕셔너리에 삽입한다. 이때, 키워드는 중복되지 않기 때문에 value를 1로 넣어주었다.
2. m번의 글쓰기를 반복하는데, 각각의 단어를 ","로 split 해서 넣어준다. (rstrip()를 안해줘서 계속 틀렸었다ㅠㅠ)
3. 키워드가 있을 경우 제거하고, keyword의 길이를 출력하면 된다.
2. 메모
- input().split()을 하면 알아서 list로 감싸짐 ✨
- 딕셔너리에서 원소 지우는 방법 => del 딕셔너리명[key] / 딕셔너리명.pop(key)
- sys.stdin.readline은 개행문자 제거가 되지 않기 때문에 (특히, 여러개를 입력할 때) rstrip() 필수
'🔅코딩테스트 공부🔅 > ❗백준' 카테고리의 다른 글
[백준] 1463번 1로 만들기(python) (0) | 2023.02.16 |
---|---|
[백준] 9095번 1,2,3 더하기(python) (0) | 2023.02.16 |
[백준] 4949번 균형잡힌 세상(python) (0) | 2023.02.15 |
[백준] 2630번 색종이 만들기(python) (0) | 2023.02.14 |
[백준] 7569번 토마토 (python) (0) | 2023.02.13 |
댓글