티스토리 뷰
https://www.acmicpc.net/problem/1764
1764번: 듣보잡
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.
www.acmicpc.net
문제 입력을 고려하지 않고 리스트로 구현했다가 시간초과가 났다.
파이썬의 자료구조 중 dictionary를 사용하여 구현하였다.
딕셔너리에서 키를 검색하는 방법(key in dict)의 시간 복잡도는 O(1)이지만, 리스트(elem in list)는 O(n)이기 때문에 훨씬 효율적이다. 딕셔너리와 리스트의 주요 연산 시간 복잡도 비교는 아래의 링크에서 더 자세하게 확인할 수 있다. (감사합니다)
[Python] 리스트와 딕셔너리의 주요 연산 시간 복잡도
요즘 코딩 테스트 언어를 파이썬으로 정하고 조금씩 문제를 풀어보는 중이다. 친구에게 * 라는 책을 추천받고 이 책에 나오는 문제들로 공부를 해보는 중에 리스트와 딕셔너리의 주요 연산 시간
velog.io
따라서! 딕셔너리를 사용하면 더 효율적으로 문제를 해결할 수 있다.
# 듣보잡
import sys
input = sys.stdin.readline
N, M = map(int, input().split())
arr = dict()
answer = []
for _ in range(N):
name = input().rstrip()
arr[name] = 1 # 듣도 못한 사람
for _ in range(M):
name = input().rstrip()
if name in arr: # 듣도 보도 못한 사람
answer.append(name)
answer.sort() # 정렬
print(len(answer))
print('\n'.join(answer))
'PS > BOJ Python' 카테고리의 다른 글
1182번 - 부분수열의 합 (0) | 2023.03.25 |
---|---|
2805번 - 나무 자르기 (0) | 2023.03.24 |
10845번 - 큐 (0) | 2023.03.23 |
4949번 - 균형잡힌 세상 (0) | 2023.01.19 |
24444번 - 알고리즘 수업 - 너비 우선 탐색 1 (0) | 2023.01.19 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 브루트포스
- dp
- 10816
- 러스트
- 11051
- 1182
- 덱
- 10971
- 딕셔너리
- 1764
- 자료구조
- 10845
- 삼성청년소프트웨어아카데미
- 스택
- 큐
- 백트래킹
- heapq
- 파이썬
- 빌림
- 수학
- 백준
- 17478
- 2805
- 1715
- 프로그래머스
- 10815
- 1759
- 싸피
- 1358
- 조합
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함