๋ฌธ์
https://www.acmicpc.net/problem/19583
๋ฐฑ์ค ๋ฌธ์ ์ง - 0x15๊ฐ - ํด์
์๊ณ ๋ฆฌ์ฆ: ๋ฌธ์์ด, ํด์๋ฅผ ์ฌ์ฉํ ์งํฉ๊ณผ ๋งต, ๊ตฌํ
ํ์ด

์ฐ์ ์ ๋ ฅ ๋ฐ์ดํฐ๊ฐ ์ ํํ ๋ช ์ค์ธ์ง ์ฃผ์ด์ง์ง ์์ผ๋ฏ๋ก ๋ฐ์์ฌ ๋ ์ฃผ์ํด์ผํ๋ค.
์ฌ์ค ์ด ๋ฌธ์ ๋ ์ ๊ตณ์ด ํด์๋ก ๋ถ๋ฅ๋์๋๊ฐ...? ์๋ฌธ์ด ๋๋ ๋ฌธ์ ๋ค.
์ด์จ๋ ํ์ด์ฌ์ ์ฌ์ฉํ๋ค๋ฉด set() ๋ง์ผ๋ก๋ ์ถฉ๋ถํ๋ค.
๋จผ์ ์
์ฅ์ฉ set, ํด์ฅ์ฉ set์ ๊ฐ๊ฐ ์์ฑํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ฑํ
์ด ์ฌ๋ผ์จ ์๊ฐ time, ์ด๋ฆ name์ ์
๋ ฅ๋ฐ๋๋ค.
์ฐธ๊ณ ๋ก str ์ ๋ ฌ๊ณผ int ์ ๋ ฌ์ ์ฐจ์ด๊ฐ ๊ฝค ์๋ค. ๋๋ฌธ์ ์ซ์ + (๋น๊ต or ์ ๋ ฌ) ์ด ํ์ํ๋ค๋ฉด ๋ณดํต์ ์ ์ํ์ผ๋ก ๋ณํ ํ ์ฌ์ฉํ๋๊ฒ์ด ์ข๋ค.
ํ์ง๋ง ์ด ๋ฌธ์ ๋ ์๊ฐ์ด HH:MM ํํ๋ก ์ฃผ์ด์ง๋ฏ๋ก ๋ฌธ์์ด ๊ทธ๋๋ก ์ ๋ ฌํด๋ ๋๋ค. => "12:09" < "12:12"
๊ณ ๋ก ๋น๊ต ํ ์๋ง์ set์ ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด ๋๋๊ฒ์ด๋ค.
time <= S: ๊ฐ๊ฐ์ดํ ์์์๊ฐ ์ ์ด๊ฑฐ๋ ์ ์์ผ๊ฒฝ์ฐ
=> ์ ์ฅ set์ ์ด๋ฆ ์ถ๊ฐE <= time <= Q: ๊ฐ๊ฐ์ดํ ์ข ๋ฃ ~ ์คํธ๋ฆฌ๋ฐ ์ข ๋ฃ ์ฌ์ด์ด๊ฑฐ๋ ์ ์์ผ๊ฒฝ์ฐ
=> ํด์ฅ set์ ์ด๋ฆ ์ถ๊ฐ
๋ง์ง๋ง์ผ๋ก ๊ต์งํฉ์ ์ด์ฉํด ์ ๋ ฅ๊ณผ ํด์ฅ ๋ชจ๋ ์๋ฒฝํ ์ฌ๋๋ค์ ๊ณจ๋ผ๋ด๋ฉด ๋๋ค.
์ ์ฒด ํ์ด
# ๋ฉ๋ชจ๋ฆฌ: 54968KB / ์๊ฐ: 116ms
from sys import stdin
data = stdin.read().splitlines()
S, E, Q = data[0].split()
start = set()
end = set()
for line in data[1:]:
time, name = line.split()
if time <= S: # ๊ฐ๊ฐ์ดํ ์์ ์ ์ ์ฐธ์ํ์ฌ๋
start.add(name)
elif E <= time <= Q: # ์ข
๋ฃ ~ ์คํธ๋ฆฌ๋ฐ ์ข
๋ฃ ์ฌ์ด์ ํด์ฅํ์ฌ๋
end.add(name)
print(len(start & end)) # ๊ต์งํฉ์ผ๋ก ์ฐธ์/ํด์ฅ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ด๋ฃจ์ด์ง ์ฌ๋๋ง ์นด์ดํธ