์์ฐ์ผ ์ฐ์์ผ์ด์ผ!!
๋ฌธ์
์ฒซ์งธ ์ค์ ์์ง์ ์์ ๊ทธ๋ฆด ์ ๋ถ์ ๊ฐ์ N์ด ์ฃผ์ด์ง๋ค
๋์งธ ์ค ๋ถํฐ N๊ฐ์ ์ค์ ์ขํ๋ฅผ ๋ํ๋ด๋ ์ ์์ (x, y)๊ฐ ์ฃผ์ด์ง๋ค
N๊ฐ์ ์ ๋ถ์ ๋ชจ๋ ๊ทธ๋ ธ์ ๋, ์์ง์ ์์ ๊ทธ์ด์ง ์ ๋ถ ๊ธธ์ด์ ์ดํฉ์ ์ถ๋ ฅ
๊ฒน์น๋ ๋ถ๋ถ์ด ์์ ์ ์์์ ๊ณ ๋ คํ์ฌ ์ ๋ถ์ ๊ธธ์ด์ ์ดํฉ์ ์ถ๋ ฅํด์ผํ๋ค.
์์
์
๋ ฅ
5
-5 -2
-3 0
2 5
6 10
8 12
์ถ๋ ฅ
14
์
๋ ฅ
2
-1000000000 1000000000
-1 1
์ถ๋ ฅ
2000000000
๋ฌธ์ ํ์ด ์ ๋ต
[[-5, -2], [-3, 0], [2, 5], [6, 10], [8, 12]]
[[-1000000000, 1000000000], [-1, 1]]
- ํ์ฌ๊ฐ๊ณผ ์ด์ ๊ฐ์ด ๊ฒน์น๋ ์ํ์ธ์ง, ์๋์ง๋ฅผ ๊ณ ๋ คํ์ฌ ๋ฌธ์ ๋ฅผ ํผ๋ค.
1) ๊ฒน์น๋ ๋ถ๋ถ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ
-> [-5, -2], [-3, 0] : ๊ธธ์ด = 0-(-5) = 5
-> [-1000000000, 1000000000], [-1, 1] : ๊ธธ์ด = 2000000000
2) ๊ฒน์น๋ ๋ถ๋ถ์ด ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ
[2, 5], [6, 10] : ๊ธธ์ด= 10-6 = 4
์ ์ฒด ๊ธธ์ด๋ฅผ ๋ํ๋ด๋ ๋ณ์์ ๊ณ์ํด์ ์ ๋ฐ์ดํธ
Results
Version | Memory | Time(ms) | info |
---|---|---|---|
solution1.py | 48500KB | 4048ms | Baseline |
Solution 1
N = int(input())#N๊ฐ์ ์ ๋ถ
lines = []
for _ in range(N):
lines.append(list(map(int,input().split())))
pre_s, pre_e = lines[0][0],lines[0][1]
length = pre_e-pre_s
for i in range(1,N):
cur_s,cur_e = lines[i][0],lines[i][1]
if cur_s < pre_e: #ํ์ฌ_s <์ด์ _e -> ๋์ด ๊ฒน์น๋ ๋ถ๋ถ ์กด์ฌ
if cur_e < pre_e:#๋๋ฒ์งธ์ผ์ด์ค -> ์์ ํ์ฌ๊ฐ์ด ์ด์ ๊ฐ ์์ ์๋ ๊ฒฝ์ฐ
continue
else: #ํ์ชฝ๋ง ๊ฒน์น๋ ๊ฒฝ์ฐ
length += cur_e - pre_e #ํ์ฌ_e - ์ด์ _e ๊ธธ์ด ๋ํด์ค
else: #๊ฒน์น๋ ๋ถ๋ถ์ด ์กด์ฌํ์ง ์๋๋ค๋ฉด
length += cur_e - cur_s #ํ์ฌ์ ๋ถ๊ธธ์ด๋ง ๋ํด์ค
pre_s,pre_e = cur_s,cur_e #ํ์ฌ๊ฐ์ ์ ๊ฐ์ผ๋ก ์
๋ฐ์ดํธ ํด์ค
print(length)
'Algorithm > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] #18405 ๊ฒฝ์์ ์ ์ผ (Python) (0) | 2022.01.18 |
---|---|
[๋ฐฑ์ค] #18352 ํน์ ๊ฑฐ๋ฆฌ์ ๋์ ์ฐพ๊ธฐ (Python) (0) | 2022.01.18 |
[๋ฐฑ์ค] #2529 ๋ถ๋ฑํธ (Python) (0) | 2021.05.18 |
[๋ฐฑ์ค] #14501 ํด์ฌ (Python) (0) | 2021.05.18 |
[๋ฐฑ์ค] #1764 ๋ฃ๋ณด์ก (Python) (0) | 2021.03.15 |