https://school.programmers.co.kr/learn/courses/30/lessons/120876
๋ฌธ์
๋ฌธ์ ์ค๋ช
์ ๋ถ 3๊ฐ๊ฐ ํํํ๊ฒ ๋์ฌ ์์ต๋๋ค. ์ธ ์ ๋ถ์ ์์๊ณผ ๋ ์ขํ๊ฐ [[start, end], [start, end], [start, end]] ํํ๋ก ๋ค์ด์๋ 2์ฐจ์ ๋ฐฐ์ด lines๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ ๊ฐ ์ด์์ ์ ๋ถ์ด ๊ฒน์น๋ ๋ถ๋ถ์ ๊ธธ์ด๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์.
lines๊ฐ [[0, 2], [-3, -1], [-2, 1]]์ผ ๋ ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ๋ถ์ด ๋ ๊ฐ ์ด์ ๊ฒน์น ๊ณณ์ [-2, -1], [0, 1]๋ก ๊ธธ์ด 2๋งํผ ๊ฒน์ณ์์ต๋๋ค.
์ ํ ์ฌํญ
- lines์ ๊ธธ์ด = 3
- lines์ ์์์ ๊ธธ์ด = 2
- ๋ชจ๋ ์ ๋ถ์ ๊ธธ์ด๊ฐ 1 ์ด์์ ๋๋ค.
- lines์ ์์๋ [a, b] ํํ์ด๋ฉฐ, a, b๋ ๊ฐ๊ฐ ์ ๋ถ์ ์ ๋์ ์ ๋๋ค.
- -100 ≤ a < b ≤ 100
์ ์ถ๋ ฅ ์
lines | result |
[[0, 1], [2, 5], [3, 9]] | 2 |
[[-1, 1], [1, 3], [3, 9]] | 0 |
[[0, 5], [3, 9], [1, 10]] | 8 |
์์ค ์ฝ๋
# 1
def solution(lines):
answer = 0
count = [0]*200
starts = []
ends = []
for line in lines:
start, end = line
starts.append(start)
ends.append(end)
for num in range(start, end):
count[num+100] += 1
for cnt in count[100+min(starts):100+max(ends)+1]:
if cnt > 1:
answer += 1
return answer
ํ์ด # 1
- ์์๊ฐ 0์ธ ๊ธธ์ด 200์ ๋ฆฌ์คํธ count ์์ฑ
- ์ ๋ถ์ด ์ (-100,100) ๋ฒ์์ ์์ผ๋ฏ๋ก ๊ธธ์ด๊ฐ 200
- ๊ฐ ์ ๋ถ์ ์์ ๋ฐ ๋ ์ขํ๋ฅผ ๋ด์ starts / ends ๋ฆฌ์คํธ ์์ฑ
- linelist ๋๊ธฐ
- ๊ฐ ์ ๋ถ์ ์์ ๋ฐ ๋ ์ขํ ์ถ๊ฐ
- ์์๊ณผ ๋ ์ขํ ์ฌ์ด ์ซ์์ +1 (count ๋ฆฌ์คํธ ๋ฒ์๊ฐ -100~100์ด๋ฏ๋ก ์ธ๋ฑ์ค์ +100)
- ์์ ์ขํ ์ค ๊ฐ์ฅ ์์ ์์ ๋ ์ขํ ์ค ๊ฐ์ฅ ํฐ ์ ๋ฒ์์์ count๊ฐ 2๋ณด๋ค ํฌ๋ฉด ์ ๋ถ์ด ๊ฒน์น๋ ๊ฒ์ด๋ฏ๋ก +1
# 2
def solution(lines):
s1 = set(i for i in range(lines[0][0], lines[0][1]))
s2 = set(i for i in range(lines[1][0], lines[1][1]))
s3 = set(i for i in range(lines[2][0], lines[2][1]))
return len((s1 & s2) | (s2 & s3) | (s1 & s3))
ํ์ด #2
- ๊ฐ ๋ผ์ธ์ ์์ ์ขํ๋ถํฐ ๋ ์ขํ๊น์ง์ ์ซ์๋ฅผ ์ธํธ๋ก ์์ฑ (s1 / s2 / s3)
- ์ ๋ถ๋ผ๋ฆฌ์ ๊ต์งํฉ(&)๋ค์ ํฉ์งํฉ(|) ๊ธธ์ด๋ฅผ ์ถ๋ ฅ
(-100,100) ๋ฒ์๋ฅผ ๋ง๋ค์ด ๋๋ ๊ฑธ ์๊ฐํ์ง ๋ชปํ์๋๋ฐ ๋ฒ์๋ฅผ ๋ง๋ค๊ณ ๋๋ ๊ฐ๋จํ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์๋ค. ๊ตณ์ด ์์๊ณผ ๋ ์ขํ์ min/max๋ ๊ตฌํ์ง ์์๋ ๊ด์ฐฎ์ ๊ฑฐ ๊ฐ๋ค. ๋ ๋ฒ์งธ ํ์ด์ฒ๋ผ ์ธํธ์์ ํฉ์งํฉ๊ณผ ๊ต์งํฉ์ ์ด์ฉํ๋ฉด ๋ ๊ฐ๋จํ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์ธ๋ฐ...๋ฐฉ๋ฒ์ ์๊ฐํด ๋ด๋ ๊ฒ ํญ์ ์ด๋ ต๋ค...
'์ฝ๋ฉ ๋ฌธ์ ํ์ด ๐ป > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.1 ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌํ๊ธฐ (1) | 2023.12.15 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.0 ๊ตฌ์ฌ์ ๋๋๋ ๊ฒฝ์ฐ์ ์ (0) | 2023.12.14 |
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.0 ํน์ดํ ์ ๋ ฌ (1) | 2023.12.05 |
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.0 ์ ์๋ฅผ ๋์ ํ์ผ๋ก ๋ฐฐ์นํ๊ธฐ (0) | 2023.12.05 |
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.0 2์ ์์ญ (1) | 2023.11.24 |