Tags
- ๋ฌธ์์ด
- queue
- ๊ตฌํ
- Java
- BFS
- ๋๋น ์ฐ์ ํ์
- ๊ต์ฌ
- sort
- ๋ฐฑํธ๋ํน
- ์ ์๋ก
- BOJ
- dfs
- SpringBoot
- greedy
- ๊ทธ๋ํ ํ์
- stack
- LV2
- ๊ทธ๋ํ ์ด๋ก
- Dynamic Programming
- PGM
- Python
- ๊น์ด ์ฐ์ ํ์
- CodingTest
- Study
- Brute Force Algorithm
- ์ํ
- ์๋ฃ๊ตฌ์กฐ
- DP
- ์๋ฎฌ๋ ์ด์
- ์ ๋ ฌ
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_20207 : ๋ฌ๋ ฅ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ๊ท์น์ ๋ฐ๋ผ ๋ฌ๋ ฅ์ ์ผ์ ์ด ํ์๋๋ค.
- ์ด์ด์ง ์ผ์ ๋ค์ ๋์ด์ ๋๋น๋ฅผ ๊ณฑํด ๋ฉด์ ์ ๊ตฌํ๊ณ , ๋ฉด์ ๋ค์ ์ด ํฉ์ ์ถ๋ ฅํ๋ฉด ๋๋ค.
๐ธ ์ฝ๋ ๐ธ
import sys
input = sys.stdin.readline
print = sys.stdout.write
N = int(input())
cal = [] # ์
๋ ฅ๋ ์ผ์ ๋ฆฌ์คํธ
calmap = [0]*366 # ์ผ์ ์ ํ์ํ ๋ฌ๋ ฅ
for i in range(N): # ์ผ์ ์
๋ ฅ
S, E = map(int, input().strip().split())
cal.append((S,E))
# ์์ ์ผ์ด ๋น ๋ฅด๊ณ , ๊ธฐ๊ฐ์ด ๊ธธ์๋ก ์์ชฝ์ผ๋ก ์ ๋ ฌ
cal = sorted(cal, key = lambda x : (x[0], -x[1]))
for s, e in cal: # ๋ฌ๋ ฅ์ ์ผ์ ํ์
for i in range(s,e+1):
calmap[i] += 1
answer = 0
w = 0 # ์์ ๋๋น
h = 0 # ์์ ๋์ด
flag = False # ์ฝํ
์ง ๋๋น ์ฒดํฌ ์ค ์ฌ๋ถ
for i in calmap: # ๋ฌ๋ ฅ ํ์ธ
if flag: # ์ฝํ
์ง ๋๋น ํ์ธ X
if i != 0: # ์ฝํ
์ง ๋๋น ํ์ธ ์์
flag = True
w += 1
h = i
else: # ์ฝํ
์ง ๋๋น ํ์ธ์ค
if i == 0: # ์ฝํ
์ง ๋๋น ํ์ธ ์ข
๋ฃ
flag = False
answer += w*h
w = 0
h = 0
else:
if i > h:
h = i
w += 1
answer += w*h # ์ฝํ
์ง ๋๋น ํ์ธ ์ค ์ข
๋ฃ๋์๋ ๋จ์๊ฑฐ ๋ํด์ฃผ๊ธฐ
print(str(answer))
๐ธ ์ฝ๋ ํด์ ๐ธ
- ๋ฌ๋ ฅ์ 1์ฐจ์ ๋ฆฌ์คํธ๋ก ํํํ๋ค.
- ์ ๋ ฅ๋ ์ผ์ ์ 2๊ฐ์ง ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํด ๋ฌ๋ ฅ์ ํ์ํ๋ฉด ๊ท์น์ ์งํค๋ฉฐ ํํํ ์ ์๋ค.
- ์ผ์ ์ด ๋๋์ง ์๊ณ ๋ฌ๋ ฅ์ด ๋๋๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํด ๋ง์ง๋ง์ ํ๋ฒ ๋ ๋ํด์ค๋ค.
๐ธ end ๐ธ
- ์ค๋ฒ 1๋ฌธ์ ์ง๋ง ์์ด๋์ด ๊ตฌ์์ด ์ ๋์ด, ํฌ๊ฒ ์ด๋ ต์ง ์๊ฒ ํ์ ๊ฒ ๊ฐ๋ค.
- 2๊ฐ์ง ์กฐ๊ฑด์ ์ ๋ ฌ ๋ฐฉ๋ฒ์ด ๊ธฐ์ต๋์ง ์์ ๊ฒ์ํด์ ์ฌ์ฉํ๋ค.
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ฌธ์ ๋ผ๋๋ฐ ์ ๊ฒฝ์ฐ์ง ์๊ณ ํ์๋ค. ๋ฐ์ง๊ณ ๋ณด๋ฉด ์กฐ๊ฑด์ ๋ง๊ฒ ์ผ์ ์ ๋ฌ๋ ฅ์ ์จ์ผํ๋ ๊ทธ๋ฆฌ๋๊ฐ ๋ง๋ ๊ฒ ๊ฐ๋ค.
728x90
'CodingTest > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_2775 : ๋ถ๋ ํ์ฅ์ด ๋ ํ ์ผ (0) | 2022.08.07 |
---|---|
BOJ_2751 : ์ ์ ๋ ฌํ๊ธฐ 2 (0) | 2022.08.02 |
BOJ_10828 : ์คํ (0) | 2022.07.30 |
BOJ_12933 : ์ค๋ฆฌ (0) | 2022.07.21 |
BOJ_17413 : ๋จ์ด ๋ค์ง๊ธฐ 2 (0) | 2022.07.21 |