๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm/๋ฐฑ์ค€(BOJ)

[python] ๋ฐฑ์ค€ 14425 - ๋ฌธ์ž์—ด ์ง‘ํ•ฉ

by YWTechIT 2021. 4. 1.
728x90

๐Ÿ“ ๋ฐฑ์ค€ 14425 - ๋ฌธ์ž์—ด ์ง‘ํ•ฉ

๋ฌธ์ œ: ๋ฐฑ์ค€ 14425 - ๋ฌธ์ž์—ด ์ง‘ํ•ฉ


๐Ÿ’ก ๋‚˜์˜ ํ’€์ด

์ €๋ฒˆ์— ํ’€์—ˆ๋˜ ๋“ฃ๋ณด์žก ๋ฌธ์ œ์™€ ๋น„์Šทํ•œ๋ฐ, ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ณ ๋ คํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค.
์ž…๋ ฅ์กฐ๊ฑด์— N๊ณผ M์ด (1<= N,M <= 10,000)์œผ๋กœ ์ฃผ์–ด์กŒ๋Š”๋ฐ,

๊ธฐ๋ณธ์ ์œผ๋กœ input()์„ sys๋กœ ์„ ์–ธํ•œ๋‹ค๊ณ  ํ•ด์„œ ํ•ด๊ฒฐ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ์—ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์ฒ˜์Œ์— ์„ ์–ธํ–ˆ๋˜ count๊ฐ€ ๋ฌธ์ œ์ธ์ค„ ์•Œ๊ณ  if ~ in ~์œผ๋กœ๋„ ํ•ด๋ดค์ง€๋งŒ ๊ฒฐ๊ณผ๋Š” ๋˜‘๊ฐ™์•˜๋‹ค.

์ฐพ์•„๋ณด๋‹ˆ ํŒŒ์ด์ฌ์˜ ์ž๋ฃŒํ˜•์— ๋”ฐ๋ผ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋‹ค๋ฅธ๋ฐ ๊ทธ๊ฒƒ์„ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ list์˜ ์‚ฝ์ž…, ์ œ๊ฑฐ, ํƒ์ƒ‰, ํฌํ•จ์—ฌ๋ถ€๋Š” ๋ณดํ†ต ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(N)์ด๊ณ 
dict, set์˜ ์‚ฝ์ž…, ์ œ๊ฑฐ, ํƒ์ƒ‰, ํฌํ•จ์—ฌ๋ถ€๋Š” ๋ณดํ†ต ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(1)์ด๋‹ค.

dict, set์˜ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋‚ฎ์€ ์ด์œ ๋Š” hash๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ธฐ๋•Œ๋ฌธ์— ๋น ๋ฅธ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ฐ’์˜ ์ˆœ์„œ, index์— ์ ‘๊ทผํ• ๋•Œ๋Š” ๋ณดํ†ต list๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ , ๊ฐ’์˜ ํƒ์ƒ‰์ด๋‚˜ ํ™•์ธ์€ ๋ณดํ†ต dictionary, setํ˜•์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

์‚ฌ์ง„ ํ•˜๋‹จ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋†’๊ฒŒ ๋‚˜์˜จ ํŒ์ •์€ listํ˜•์œผ๋กœ, ์ƒ๋‹จ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋‚ฎ๊ฒŒ ๋‚˜์˜จ ํŒ์ •์€ dictionary, setํ˜•์„ ์ด์šฉํ–ˆ์„ ๋•Œ์˜ ์‚ฌ์ง„์ด๋‹ค.

ํ™•์—ฐํ•˜๊ฒŒ ์ฐจ์ด๊ฐ€ ๋‚˜๋Š”๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

โšก๏ธ ๊ฒฐ๋ก 

์ •๋‹ตํŒ์ •์„ ๋ฐ›์•˜๋Š”๋ฐ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋„ˆ๋ฌด ๋†’๊ฒŒ๋‚˜์˜จ๋‹ค ์‹ถ์œผ๋ฉด ์ž๋ฃŒํ˜•์„ ๋ฐ”๊ฟ”์„œ ์ ์šฉํ•ด๋ณด์ž!!!

# ๋ฐฉ๋ฒ• 1: dict()
import sys
input = sys.stdin.readline

n, m = map(int, input().split())
cnt = 0
S = dict()

for i in range(n):
    index = input().strip()
    S[index] = True

for j in range(m):
    check = input().strip()
    if check in S:
        cnt+=1
print(cnt)

# ๋ฐฉ๋ฒ• 2: set()
import sys
input = sys.stdin.readline

n, m = map(int, input().split())
cnt = 0

S = 

for j in range(m):
    if input().strip() in S:cnt+=1
print(cnt)

# ์ž˜๋ชป๋œ ๋ฐฉ๋ฒ• 3: list()
import sys
input = sys.stdin.readline

n, m = map(int, input().split())
cnt = 0

S = [input().strip() for _ in range(n)]

for j in range(m):
    if input().strip() in S:cnt+=1
print(cnt)
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€