๐ฉโ๐ป๐ [baekjoon] 1764๋ฒ: ๋ฃ๋ณด์ก
๐๏ธย solution 1
import sys
"""
[ํ์ด ์๊ฐ]
1) 15:50 ~ 16:10
[์์ฝ]
1) ๋ช
๋จ A, ๋ช
๋จ B์ ๊ต์งํฉ ๊ตฌํ๋ ๋ฌธ์
[์ ๋ต]
1) ๋ ๋ช
๋จ์ ์ธํธ ์๋ฃํ์ ๋ฃ๊ณ ๊ต์งํฉ์ ๊ตฌํด์ฃผ๊ธฐ
"""
N, M = map(int, sys.stdin.readline().split())
set_a, set_b = set(), set()
# ๋ฃ๋ ๋ชปํ ์ฌ๋ ๋ช
๋จ
for _ in range(N):
set_a.add(sys.stdin.readline().rstrip())
# ๋ณด๋ ๋ชปํ ์ฌ๋ ๋ช
๋จ
for _ in range(M):
set_b.add(sys.stdin.readline().rstrip())
result_list = sorted(list(set_a & set_b))
print(len(result_list))
for name in result_list:
print(name)
๐กย idea 1
- 1) ๋ ๋ช ๋จ์ ๊ฐ๋ณ ์ธํธ ์๋ฃํ์ ๋ฃ๊ณ ๊ต์งํฉ ํ์ธ
๐๏ธย solution 2
import sys
"""
[ํ์ด ์๊ฐ]
1) 15:50 ~ 16:10
[์์ฝ]
1) ๋ช
๋จ A, ๋ช
๋จ B์ ๊ต์งํฉ ๊ตฌํ๋ ๋ฌธ์
[์ ๋ต]
1) ๋ช
๋จ A์ ์ ๋ค์ ์ ๋ถ ์ฌ์ ์ ๋ฃ์ด ์ฃผ์
"""
N, M = map(int, sys.stdin.readline().split())
result_list, name_dict = [], {}
# ๋ฃ๋ ๋ชปํ ์ฌ๋ ๋ช
๋จ
for _ in range(N):
name_dict[sys.stdin.readline().rstrip()] = True
# ๋ณด๋ ๋ชปํ ์ฌ๋ ๋ช
๋จ
for _ in range(M):
tmp_name = sys.stdin.readline().rstrip()
try:
if name_dict[tmp_name]:
result_list.append(tmp_name)
except KeyError as e:
pass
result_list.sort()
print(len(result_list))
for name in result_list:
print(name)
๐กย idea 2
- 1) ํ์ชฝ ๋ช
๋จ์ ๋ชจ๋ ์ฌ์ ์ ๋ฃ๊ธฐ
- ์ฌ์ ์
value
๋True
๋ก ๋ชจ๋ ์ด๊ธฐํ
- ์ฌ์ ์
- 2) ๋ค์ ๋ช
๋จ์ ๊ฐ๋ณ ์ฌ๋๋ค์ ์ด๋ฏธ ์ฌ์ ์ ์๋์ง ๋์กฐ
- ์์ธ ์ฒ๋ฆฌ ๊ตฌ๋ฌธ์ ์ด์ฉ, ์ฌ์ ์ ์ด๋ฏธ ๋ฑ์ฌ๋ ์ฌ๋์ด๋ผ๋ฉด ๊ฒฐ๊ณผ ๋ฆฌ์คํธ์ ์ถ๊ฐ
๐ Comparison
๊ฒฐ๊ณผ ๋น๊ต
์ ์ผ ์๋จ์ ์ ์ถ ๊ฒฐ๊ณผ๊ฐ solution 1
, ํ๋จ์ ๊ฒฐ๊ณผ๊ฐ solution 2
์ ํด๋น ๋๋ค. ์๊ฐ ๋ณต์ก๋๋ ์ ์๊ฐ, ๊ณต๊ฐ ๋ณต์ก๋๋ ํ์๊ฐ ๋ ํจ์จ์ ์ธ ๊ฒ์ผ๋ก ๋ํ๋๋ค.
Leave a comment