Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- DFS활용
- 그리디알고리즘
- CSS
- 블챌
- react-query
- 재귀
- DP
- 스택
- 완전탐색
- 백준알고리즘
- 문자열
- JS
- 자료구조
- 그리디
- 파이썬
- DFS
- 백준
- react
- 코드트리
- DFS기초
- 코딩테스트실력진단
- 코딩테스트
- django
- 구현
- 알고리즘
- Express
- BFS
- socket.io
- 스택자료구조
- 코테
Archives
- Today
- Total
꾸준하게 거북이처럼
해쉬 : 단어찾기 본문
n = int(input())
wordsInNote = []
wordsInPoetry = []
for i in range(n):
wordsInNote.append(input())
for i in range(n-1):
value = input()
wordsInPoetry.append(value)
if value in wordsInNote:
wordsInNote.pop(wordsInNote.index(value))
print(wordsInNote[0])
# 해쉬는 Key에 Value(데이터)를 저장하는 자료구조
# 파이썬에서는 dictionary 사용하면 된다. key값과 value 값을 자주 사용한다면 해쉬를 선택해도 좋을 것 같다.
# a = {'a':1, 'b':2} 처럼 정의할 수 있음 a[Key] 와 같이 value 값에 접근 가능
# a.keys() : key 값 배열 반환
# a.values() : value 값을 모은 배열 반환
# a.items() : key , value 쌍을 튜플로 묶어 배열로 반환 ex)[('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')]
# a.clear() : key,value 쌍 모두 지우기
# 나의 풀이
# 두 배열에 각각 시에 쓰인 단어와 쓰일 단어를 초기화하고 for문 반복을 통해 wordsInPoem이 wordsInNote에
# 존재한다면, wordsInNote에서 해당 단어의 index를 찾아서 pop한다. 마지막으로 담은 단어가 답이된다.
n = int(input())
poem = dict()
for i in range(n):
word = input()
poem[word] = 1
for _ in range(n-1):
word = input()
poem[word] = 0
for key,val in poem.items():
if val == 1:
print(key)
break
# 정답풀이
# 시에 사용되지 않은 단어를 찾기 위해서 key에는 단어를, value에는 숫자 1을 통해서 초기화한 후,
# 시에 사용된 단어가 입력되면 해당 key 값의 value를 0으로 할당.
# for 반복문을 items() 딕셔너리 기능을 적용해서 key 값과 value를 동시에 활용하여 value가 1인 key 출력
# 문제풀이 후 든 생각
# 이처럼 index 값과 value 즉 데이터 값 모두가 필요할 경우에는 딕셔너리를 써도 괜찮았을 것이다.
# for 반복문 사용은 좋지만 혹시 하나의 답을 바로 찾고 그 후의 반복은 필요하지 않다면 바로 break문을 사용
# 하자. 불필요한 반복을 줄여서 연산시간을 줄일 수 있다.
'Algorithm 문제 & 공부' 카테고리의 다른 글
해쉬 - Anagram 개선코드 (0) | 2022.06.11 |
---|---|
해쉬 - Anagram (0) | 2022.06.11 |
큐 - 응급실 (0) | 2022.06.10 |
큐 - 교육과정설계 (0) | 2022.06.10 |
큐 - 공주구하기 (0) | 2022.06.10 |
Comments