https://www.acmicpc.net/problem/17219
문제 해석
저장된 사이트 주소의 수 N 비밀번호를 찾으려는 사이트 주소의 수 M 를 입력하여 찾고 싶은 주소의 비밀번호를 출력하는 문제이다. 찾으려는 주소를 차례대로 하나씩 출력하면 된다.
코드
N, M = map(int, input().split())
c = dict()
for i in range(N + M):
if i < N:
a, b = map(str, input().split())
c[a] = b
else:
print(c[str(input())])
N, M = map(int, input().split())
c = dict()
for i in range(N):
a, b = map(str, input().split())
c[a] = b
print(*[c[str(input())] for i in range(M)], sep='\n')
문제풀이
제일 처음 방법으로는 첫 번째 방법으로 풀이를 진행했다. n과 m을 입력 받고 출력을 딕셔너리 자료구조로하여 각 각의 주소에 대응하는 비밀번호 value 값을 지정하는 방법으로 진행했다. 그치만 입력값이 N(1 ≤ N ≤ 100,000)과 M(1 ≤ M ≤ 100,000) 의 범위를 가지기 때문에 첫 번째 코드의 시간 복잡도는 N+M으로 최대 200,000이 된다.
따라서 시간 소요를 더 줄일 방법을 고민하여 두 번째 코드와 같은 형식으로 시간 복잡도를 줄일 수 있었다.
'Koala - 11기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/python3] 10825번 : 국영수 (0) | 2023.07.29 |
---|---|
[백준/C++] 2947번: 나무 조각 (0) | 2023.07.28 |
[백준/Python] 7510번: 고급 수학 (0) | 2023.07.23 |
[백준/Python] 2947번: 나무 조각 (0) | 2023.07.23 |
[백준/c++] 14425번 문자열 집합 (0) | 2023.07.23 |