๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ’ก

8.๋‹จ์–ด์ฐพ๊ธฐ(ํ•ด์‰ฌ)_ํŒŒ์ด์ฌ

by @ENFJ 2025. 2. 18.

์ „์ฒด์ฝ”๋“œ

import sys
from collections import deque
# ์ž…๋ ฅ ๊ฐ’
# 5
# big
# good
# sky
# blue
# mouse
# sky
# good
# mouse
# big
sys.stdin=open("C:\\input.txt",'rt')

n = int(input())
p = dict()
for i in range(n):
    word = input()
    p[word] = 1

for i in range(n-1):
    word = input()
    p[word] = 0

for key,val in p.items():
    # print(key,val)
    if val == 1:
        print(key)
        break

dict๋Š” ํŒŒ์ด์ฌ์—์„œ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒํ˜•์ž…๋‹ˆ๋‹ค. ๋”•์…”๋„ˆ๋ฆฌ๋Š” **ํ‚ค(key)**์™€ **๊ฐ’(value)**์˜ ์Œ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, ๋น ๋ฅธ ๊ฒ€์ƒ‰, ์‚ฝ์ž…, ์‚ญ์ œ๋ฅผ ํ•  ์ˆ˜ ์žˆ์–ด์š”.

1๏ธโƒฃ ๋”•์…”๋„ˆ๋ฆฌ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

# ๋นˆ ๋”•์…”๋„ˆ๋ฆฌ ์ƒ์„ฑ my_dict = {} # ๋”•์…”๋„ˆ๋ฆฌ ์ดˆ๊ธฐํ™” 
my_dict = {'apple': 3, 'banana': 5, 'cherry': 7}
 
  • ๋”•์…”๋„ˆ๋ฆฌ๋Š” ์ค‘๊ด„ํ˜ธ {}๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ ๋ฐ์ดํ„ฐ๋Š” key: value ํ˜•์‹์œผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. key๋Š” ๊ณ ์œ ํ•œ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๊ณ , value๋Š” ํ•ด๋‹น key์— ๋งคํ•‘๋˜๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค.

์˜ˆ์‹œ

python
๋ณต์‚ฌํŽธ์ง‘
my_dict = {'apple': 3, 'banana': 5} 
print(my_dict['apple']) # 3 (apple ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’ ์ถœ๋ ฅ)

์œ„ ์˜ˆ์‹œ์—์„œ 'apple'์€ ํ‚ค(key)์ด๊ณ , 3์€ ๊ทธ์— ๋Œ€์‘ํ•˜๋Š” ๊ฐ’(value)์ž…๋‹ˆ๋‹ค.

2๏ธโƒฃ ๋”•์…”๋„ˆ๋ฆฌ์˜ ์ฃผ์š” ์—ฐ์‚ฐ

  • ๊ฐ’ ์ถ”๊ฐ€ ๋ฐ ๋ณ€๊ฒฝ:
    • ๋”•์…”๋„ˆ๋ฆฌ์—์„œ ์ƒˆ๋กœ์šด ํ‚ค-๊ฐ’ ์Œ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
# ๊ฐ’ ์ถ”๊ฐ€ 
my_dict['orange'] = 10 # 'orange' ํ‚ค์— ๊ฐ’ 10 ์ถ”๊ฐ€ 
print(my_dict) # {'apple': 3, 'banana': 5, 'orange': 10} # ๊ฐ’ ๋ณ€๊ฒฝ 
my_dict['banana'] = 7 # 'banana'์˜ ๊ฐ’์„ 7๋กœ ๋ณ€๊ฒฝ 
print(my_dict) # {'apple': 3, 'banana': 7, 'orange': 10}
  • ๊ฐ’ ์กฐํšŒ:
    • ํŠน์ • ํ‚ค์— ๋Œ€์‘ํ•˜๋Š” ๊ฐ’์„ ์กฐํšŒํ•  ๋•Œ๋Š” my_dict[key] ํ˜•์‹์œผ๋กœ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.
 
print(my_dict['orange']) # 10
  • ํ‚ค๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ:
    • in ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ํ‚ค๊ฐ€ ๋”•์…”๋„ˆ๋ฆฌ์— ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
print('apple' in my_dict) # True 
print('grape' in my_dict) # False
 
  • ๋ชจ๋“  ํ‚ค์™€ ๊ฐ’ ์กฐํšŒ:
    • keys(), values(), items() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋”•์…”๋„ˆ๋ฆฌ์˜ ํ‚ค, ๊ฐ’, ํ‚ค-๊ฐ’ ์Œ์„ ๊ฐ๊ฐ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
 
print(my_dict.keys()) # dict_keys(['apple', 'banana', 'orange']) print(my_dict.values()) # dict_values([3, 7, 10]) print(my_dict.items()) # dict_items([('apple', 3), ('banana', 7), ('orange', 10)])

3๏ธโƒฃ ์ฝ”๋“œ์— ๋‚˜์˜ค๋Š” dict ์‚ฌ์šฉ ์˜ˆ์‹œ ๋ถ„์„

n = int(input())  # ๋‹จ์–ด์˜ ์ด ๊ฐœ์ˆ˜
p = dict()  # ๋นˆ ๋”•์…”๋„ˆ๋ฆฌ ์ƒ์„ฑ

# n๊ฐœ์˜ ๋‹จ์–ด ์ž…๋ ฅ๋ฐ›๊ณ , ๋‹จ์–ด๋ฅผ ํ‚ค๋กœ ์ €์žฅ
for i in range(n):
    word = input()  # ๋‹จ์–ด ์ž…๋ ฅ๋ฐ›๊ธฐ
    p[word] = 1  # ๋‹จ์–ด๋ฅผ ํ‚ค๋กœ ์ €์žฅํ•˜๊ณ , ๊ฐ’์„ 1๋กœ ์„ค์ •

# ์ค‘๋ณต๋œ ๋‹จ์–ด๋Š” ๊ฐ’์„ 0์œผ๋กœ ๋ณ€๊ฒฝ
for i in range(n-1):
    word = input()  # ๋‹จ์–ด ์ž…๋ ฅ๋ฐ›๊ธฐ
    p[word] = 0  # ๋‹จ์–ด์˜ ๊ฐ’์„ 0์œผ๋กœ ๋ณ€๊ฒฝ

# ๊ฐ’์ด 1์ธ ๋‹จ์–ด ์ถœ๋ ฅ
for key, val in p.items():
    if val == 1:  # ๊ฐ’์ด 1์ธ ๋‹จ์–ด๋ฅผ ์ฐพ์œผ๋ฉด
        print(key)  # ํ•ด๋‹น ๋‹จ์–ด ์ถœ๋ ฅ
        break  # ์ฒซ ๋ฒˆ์งธ๋กœ ๋“ฑ์žฅํ•œ ๋‹จ์–ด๋งŒ ์ถœ๋ ฅํ•˜๊ณ  ์ข…๋ฃŒ

๋”•์…”๋„ˆ๋ฆฌ์˜ ์‚ฌ์šฉ ๊ณผ์ •

  1. p = dict()๋กœ ๋นˆ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ , word๋ผ๋Š” ๋‹จ์–ด๋ฅผ ํ‚ค(key)๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ 1๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ฒซ ๋ฒˆ์งธ๋กœ ๋“ฑ์žฅํ•˜๋Š” ๋‹จ์–ด๋“ค์„ ์ €์žฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  2.  
    p[word] = 1
  3.  
  4. ์ดํ›„์— ๋‚˜์˜ค๋Š” n-1๊ฐœ์˜ ๋‹จ์–ด๋“ค์€ ์ด๋ฏธ ๋“ฑ์žฅํ•œ ๋‹จ์–ด๋“ค์ž…๋‹ˆ๋‹ค. ์ด๋•Œ๋Š” ํ•ด๋‹น ๋‹จ์–ด์˜ ๊ฐ’์„ 0์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
  5.  
    p[word] = 0
  6. ๋งˆ์ง€๋ง‰์œผ๋กœ ๋”•์…”๋„ˆ๋ฆฌ์˜ ๋ชจ๋“  ํ‚ค-๊ฐ’ ์Œ์„ ํ™•์ธํ•˜๋ฉด์„œ, ๊ฐ’์ด 1์ธ ๋‹จ์–ด๋ฅผ ์ฐพ์•„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์ด 1์ธ ๋‹จ์–ด๋Š” ์ตœ์ดˆ๋กœ ๋“ฑ์žฅํ•œ ๋‹จ์–ด์ž…๋‹ˆ๋‹ค.

์˜ˆ์‹œ ์‹คํ–‰:

์ž…๋ ฅ ๊ฐ’:

 
5
big
good
sky
blue
mouse
sky
good
mouse
big

1๋‹จ๊ณ„ - ์ฒซ ๋ฒˆ์งธ for ๋ฃจํ”„:

  • p = {'big': 1, 'good': 1, 'sky': 1, 'blue': 1, 'mouse': 1}
    (๋‹จ์–ด๋“ค์ด ์ฒ˜์Œ ๋“ฑ์žฅํ–ˆ์œผ๋ฏ€๋กœ ๋ชจ๋‘ ๊ฐ’์ด 1๋กœ ์„ค์ •๋จ)

2๋‹จ๊ณ„ - ๋‘ ๋ฒˆ์งธ for ๋ฃจํ”„:

  • p = {'big': 0, 'good': 0, 'sky': 0, 'blue': 1, 'mouse': 0}
    (์ค‘๋ณต๋œ ๋‹จ์–ด๋“ค์ด ๋“ค์–ด์˜ค๋ฉด์„œ ๊ฐ’์ด 0์œผ๋กœ ๋ณ€๊ฒฝ๋จ)

3๋‹จ๊ณ„ - ์ถœ๋ ฅ ๋ถ€๋ถ„:

  • p์—์„œ val == 1์ธ ์ฒซ ๋ฒˆ์งธ ๋‹จ์–ด์ธ "blue"๋ฅผ ์ถœ๋ ฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ถœ๋ ฅ:

 
blue

๊ฒฐ๋ก 

  • ๋”•์…”๋„ˆ๋ฆฌ dict๋Š” ํ‚ค-๊ฐ’ ์Œ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, ํ‚ค์— ๋Œ€์‘ํ•˜๋Š” ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฝ”๋“œ์—์„œ ๋”•์…”๋„ˆ๋ฆฌ๋Š” ๋‹จ์–ด์˜ ๋“ฑ์žฅ ์—ฌ๋ถ€๋ฅผ ๊ธฐ๋กํ•˜๊ณ , ํ•œ ๋ฒˆ๋งŒ ๋“ฑ์žฅํ•œ ๋‹จ์–ด๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.