์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฌธ์ž์—ด

[๋ฐฑ์ค€ 1764 ๐Ÿฅˆ] ๋“ฃ๋ณด์žก

1eehyunji 2023. 11. 1. 00:06

https://www.acmicpc.net/problem/1764

 

1764๋ฒˆ: ๋“ฃ๋ณด์žก

์ฒซ์งธ ์ค„์— ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ˆ˜ N, ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. ์ด์–ด์„œ ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„๊ณผ, N+2์งธ ์ค„๋ถ€ํ„ฐ ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์ด ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net

๋ฌธ์ œ

๊น€์ง„์˜์ด ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ๋ช…๋‹จ๊ณผ, ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ๋ช…๋‹จ์ด ์ฃผ์–ด์งˆ ๋•Œ, ๋“ฃ๋„ ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ๋ช…๋‹จ์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ˆ˜ N, ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. ์ด์–ด์„œ ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„๊ณผ, N+2์งธ ์ค„๋ถ€ํ„ฐ ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์ด ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. ์ด๋ฆ„์€ ๋„์–ด์“ฐ๊ธฐ ์—†์ด ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ๊ทธ ๊ธธ์ด๋Š” 20 ์ดํ•˜์ด๋‹ค. N, M์€ 500,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค.

๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ๋ช…๋‹จ์—๋Š” ์ค‘๋ณต๋˜๋Š” ์ด๋ฆ„์ด ์—†์œผ๋ฉฐ, ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ๋ช…๋‹จ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค.

์ถœ๋ ฅ

๋“ฃ๋ณด์žก์˜ ์ˆ˜์™€ ๊ทธ ๋ช…๋‹จ์„ ์‚ฌ์ „์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

๋ฌธ์ œ ํ’€์ด

  • ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ๊ณผ ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์— ๋ชจ๋‘ ํ•ด๋‹นํ•˜๋Š” ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์„ ์ถœ๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค!
  • try...except...๋ฌธ๊ณผ dictionary๋ฅผ ์ด์šฉํ•ด์„œ count์— ๋ช…๋‹จ์— ์กด์žฌํ•˜๋Š” ์‚ฌ๋žŒ์˜ ํšŸ์ˆ˜๋ฅผ ์ €์žฅํ•œ๋‹ค.
  • count ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋Œ๋ฉด์„œ ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ๊ณผ ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์— ๋ชจ๋‘ ์กด์žฌํ•ด์„œ ํšŸ์ˆ˜๊ฐ€ 2์ธ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์„ ans ๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. 
  • ans ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๊ณ  ์ถœ๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
  • ๋ฌธ์ œ๋ฅผ ๋ชจ๋‘ ํ’€๊ณ  ๋‚˜์„œ ๋‹ค๋ฅธ ๋ถ„์˜ ํ’€์ด๋ฅผ ๋ณด๋ฉด์„œ ์•Œ์•˜๋Š”๋ฐ, ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„ ๋ฐฐ์—ด๊ณผ ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„ ๋ฐฐ์—ด์„ ๋”ฐ๋กœ ์ €์žฅํ•ด์„œ & ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‘ ๋ฐฐ์—ด์— ๋ชจ๋‘ ์กด์žฌํ•˜๋Š” ์š”์†Œ๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค..! ํ›จ์”ฌ ์‰ฌ์šด ๋ฌธ์ œ ํ’€์ด ๋ฐฉ๋ฒ•์ด์˜€๊ณ  ์ถ”๊ฐ€๋กœ ํŒŒ์ด์ฌ ๋ฌธ๋ฒ•์„ ํ•˜๋‚˜ ๋” ์•Œ๊ฒŒ ๋๋‹ค! ex) Arr1=[1,2,3], Arr2=[2,3,6,7] => Arr1 & Arr2 => [2,3]
import sys

n,m=map(int, sys.stdin.readline().split(' '))

count={}
for _ in range(n+m):
    name=sys.stdin.readline().strip()
    try:
        count[name]+=1
    except:
        count[name]=1

ans=[]
numberOfAns=0
for name, cnt in count.items():
    if cnt==2:
        ans.append(name)
        numberOfAns+=1

ans.sort()
print(numberOfAns)
print(*ans, sep='\n')

# arr1 & arr2 -> arr1, arr2์˜ ๊ณตํ†ต ์š”์†Œ ์ถ”์ถœ ๊ฐ€๋Šฅ