์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ๋ฐฑ์คํ์ด
- SSE
- ๊ทธ๋ฆฌ๋
- ์ฐ์ ์์ํ
- ํ๋ก๊ทธ๋๋ฐ
- ์ปด๊ณต
- ์๋ฃ๊ตฌ์กฐ
- ๊ทธ๋ฆฌ๋์๊ณ ๋ฆฌ์ฆ
- ๋ฆฌ์กํธ
- boj11653
- ChatGPT
- ์น๊ฐ๋ฐ
- ๋ฐฑ์๋
- ๋ชจ๋ฐ์ผ์ฑํ๋ก๊ทธ๋๋ฐ
- ๊ฐ๋ฐ์
- ๋ฐฑ์ค
- ์ฝ๋ฉ
- ์ปดํจํฐ๊ณตํ
- spring
- ์ปด๊ณต์
- ๋ฆฌ์กํธ๋ค์ดํฐ๋ธ
- ๋จ์ํ ์คํธ
- ๋ฐฑ์ค1436
- ์ดํญ๊ณ์
- ํ๋ก ํธ์ค๋
- ์น๊ฐ๋ฐ๊ธฐ๋ก
- ์ฝ๋ฉํ ์คํธ
- ํ์ด์ฌ
- ์๊ณ ๋ฆฌ์ฆ
- ์คํ๋ง
- Today
- Total
๐ป๐ญ๐ง๐
BOJ 11000 : ๊ฐ์์ค ๋ฐฐ์ (Python) ๋ณธ๋ฌธ
๋ฌธ์
https://www.acmicpc.net/problem/11000
11000๋ฒ: ๊ฐ์์ค ๋ฐฐ์
์ฒซ ๋ฒ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. (1 โค N โค 200,000) ์ดํ N๊ฐ์ ์ค์ Si, Ti๊ฐ ์ฃผ์ด์ง๋ค. (0 โค Si < Ti โค 109)
www.acmicpc.net
์ฝ๋
import sys
import heapq
n = int(sys.stdin.readline())
array = []
for i in range(n):
array.append(list(map(int, sys.stdin.readline().split())))
array.sort()
room = []
heapq.heappush(room,array[0][1])
for i in range(1,n):
if array[i][0] < room[0]:
heapq.heappush(room, array[i][1])
else:
heapq.heappop(room)
heapq.heappush(room, array[i][1])
print(len(room))
ํ์ด
์ฒ์์ ๋ฆฌ์คํธ๋ก ๋ฌด์์ ํ๋ค๊ฐ ์๊ฐ์ด๊ณผ๋ก ์ธํด ํด๊ฒฐํ์ง ๋ชปํ๋ค.
์ฐ์ ์์ ํ๋ฅผ ์ด์ฉํด์ ํธ๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์๋ค!
๋จผ์ ๊ฐ์ ์์, ์ข ๋ฃ ์๊ฐ์ array ๋ผ๋ ๋ฐฐ์ด ๋ด์์ 2์ฐจ์ ๋ฐฐ์ด๋ก ๋ง๋ค์ด์ค๋ค.
โ 2์ฐจ์ ๋ฐฐ์ด์์ sort๋ฅผ ํ๋ฉด 0๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ๋จผ์ ํ๋ ๊ฒ์ด ๋ํดํธ์ธ ๊ฒ ๊ฐ๋ค.
ex. array = [[1,5], [3,2], [3,1], [5,1], [1,2]] ์์ array.sort()๋ฅผ ์คํํ๋ฉด array = [[1,2], [1,5], [3,1], [3,2], [5,1]]
room ์ด๋ผ๋ ํ์ ๋ง๋ค์ด์ ๋จผ์ ์ฒซ๋ฒ์งธ ๊ฐ์์ ์ข ๋ฃ ์๊ฐ์ ๋ฃ๋๋ค.
for ๋ฌธ ๋ด์์๋,
i ๋ฒ์งธ ๊ฐ์์ ์์ ์๊ฐ์ด ํ์ฌ ํ (room) ๋ด์ ์๋ ์์ ์ ์ข ๋ฃ ์๊ฐ๋ณด๋ค ์ด๋ฅธ ๊ฒฝ์ฐ์๋ ์๋ก์ด ๊ฐ์์ค์ ๋ง๋ ๋ค๋ ์๋ฏธ๋ก, ํ์ i ๋ฒ์งธ ๊ฐ์์ ์ข ๋ฃ ์๊ฐ์ ์ถ๊ฐ ํ๋ค.
i ๋ฒ์งธ ๊ฐ์์ ์์ ์๊ฐ์ด ํ์ฌ ํ (room) ๋ด์ ์๋ ์์ ์ ์ข ๋ฃ ์๊ฐ๋ณด๋ค ๋์ค์ธ ๊ฒฝ์ฐ์๋ ๊ฐ์ ๊ฐ์์ค์์ ์์ ์ ์งํํ๋ค๋ ์๋ฏธ๋ก, ํ์ ์๋ ์์ ์ ์ข ๋ฃ ์๊ฐ์ ์์ค ๋ค i ๋ฒ์งธ ๊ฐ์์ ์ข ๋ฃ ์๊ฐ์ ๋ฃ์ด ์ค๋ค.
if array[i][0] < room[0]:
heapq.heappush(room, array[i][1])
ํ ๋ด์์๋ ์์ ์์ผ๋ก ์ ๋ ฌ ๋ผ ์์ผ๋ฏ๋ก room[0] ๊ณผ ๋น๊ตํ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
์๊ฐ์ด๊ณผํ ์ฝ๋
ํ๋ฆฐ ๋ถ๋ถ์ ์์ ๊ฒ ๊ฐ๊ธด ํ๋ค.. (๋ชจ๋ฆ)
import sys
n = int(sys.stdin.readline())
array = []
array.append(list(map(int, sys.stdin.readline().split())))
room = 1
for i in range(1,n):
start, end = map(int, sys.stdin.readline().split())
check = 0
for j in range(len(array)):
check += 1
if array[j][1] <= start:
array[j][0] = start
array[j][1] = end
break
if check != i:
room += 1
array.append([start,end])
print(len(array))
'์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ 1715 : ์นด๋ ์ ๋ ฌํ๊ธฐ (Python) (0) | 2023.02.19 |
---|---|
BOJ 1041 : ์ฃผ์ฌ์ (Python) (0) | 2023.02.15 |
BOJ 1461 : ๋์๊ด (Python) (4) | 2023.02.15 |
BOJ 9251 : LCS (Python) (0) | 2023.02.07 |
BOJ 2631 : ์ค์ธ์ฐ๊ธฐ (Python) (0) | 2023.02.06 |