์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 31 |
- ์น๊ฐ๋ฐ๊ธฐ๋ก
- ํ๋ก๊ทธ๋๋ฐ
- ๋ฆฌ์กํธ๋ค์ดํฐ๋ธ
- ํ์ด์ฌ
- spring
- ์ปดํจํฐ๊ณตํ
- ๋ชจ๋ฐ์ผ์ฑํ๋ก๊ทธ๋๋ฐ
- ํ๋ก ํธ์ค๋
- ๊ฐ๋ฐ์
- ๊ทธ๋ฆฌ๋์๊ณ ๋ฆฌ์ฆ
- SSE
- ์ฝ๋ฉํ ์คํธ
- ๋ฐฑ์ค1436
- ์ฝ๋ฉ
- ๊ทธ๋ฆฌ๋
- ์น๊ฐ๋ฐ
- ๋ฆฌ์กํธ
- ๋จ์ํ ์คํธ
- boj11653
- ์ดํญ๊ณ์
- ๋ฐฑ์คํ์ด
- ์๊ณ ๋ฆฌ์ฆ
- ์๋ฃ๊ตฌ์กฐ
- ์คํ๋ง
- ์ปด๊ณต
- ๋ฐฑ์๋
- ์ปด๊ณต์
- ๋ฐฑ์ค
- ChatGPT
- ์ฐ์ ์์ํ
- Today
- Total
๐ป๐ญ๐ง๐
BOJ 1092 : ๋ฐฐ (Python) ๋ณธ๋ฌธ
๋ฌธ์
https://www.acmicpc.net/problem/1092
1092๋ฒ: ๋ฐฐ
์ฒซ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. N์ 50๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ๋์งธ ์ค์๋ ๊ฐ ํฌ๋ ์ธ์ ๋ฌด๊ฒ ์ ํ์ด ์ฃผ์ด์ง๋ค. ์ด ๊ฐ์ 1,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ์ ์งธ ์ค์๋ ๋ฐ์ค์ ์ M์ด ์ฃผ์ด์ง๋ค. M์ 10,000๋ณด
www.acmicpc.net
์ฝ๋
import sys
n = int(sys.stdin.readline()) #ํฌ๋ ์ธ ์
limit = [[0 for i in range(2)] for j in range(n)] #๊ฐ ํฌ๋ ์ธ์ ๋ฌด๊ฒ ์ ํ์ 0์ด์, ๊ฐ ํฌ๋ ์ธ์ด ์ด๋์ํจ ๋ฐ์ค์ ์๋ฅผ 1์ด์ ๋ฃ๋ ๋ฐฐ์ด
array = list(map(int, sys.stdin.readline().split())) #ํฌ๋ ์ธ์ ๋ฌด๊ฒ ์ ํ
for i in range(n):
limit[i][0] = array[i]
limit.sort(reverse = True) #limit ๋ฐฐ์ด์ ๋ด๋ฆผ์ฐจ ์์ผ๋ก ์ ๋ ฌ
m = int(sys.stdin.readline()) #์์ ์
weight = list(map(int, sys.stdin.readline().split()))
weight.sort(reverse = True) #weight ๋ฐฐ์ด์ ๋ด๋ฆผ์ฐจ ์์ผ๋ก ์ ๋ ฌ
i = 0
q = 0
for i in range(m-1):
limit.sort(reverse = True)
if weight[i] <= limit[(i+n-q)%n][0]: #์์์ ๋ฌด๊ฒ๊ฐ ํฌ๋ ์ธ์ ๋ฌด๊ฒ ์ ํ๋ณด๋ค ์๋ค๋ฉด
limit[(i+n-q)%n][1] += 1 #ํฌ๋ ์ธ์ผ๋ก ์์๋ฅผ ์ด๋
else:
for j in range((q+n)%n,(i+n-q)%n): #๊ฐ๋ฅํ ์ผ์ชฝ ํฌ๋ ์ธ๋ถํฐ ๋ค์ ๋งค์นญ ์์
if weight[i] <=limit[j][0]: #์์์ ๋ฌด๊ฒ๊ฐ ํฌ๋ ์ธ์ ๋ฌด๊ฒ ์ ํ๋ณด๋ค ์๋ค๋ฉด
limit[j][1] += 1 #ํฌ๋ ์ธ์ผ๋ก ์์๋ฅผ ์ด๋
q+=1 # ๋ค์ else๋ฌธ์ ๋ค์ด์์ ๋ ๊ฐ๋ฅํ ์ผ์ชฝ ์ธ๋ฑ์ค๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ํ ์นธ ๋ฏธ๋ฃจ๊ธฐ ์ํด ๋ฃ์
break
if limit[limit.index(max(limit,key = lambda x:x[1]))][1] == 0: #1์ด์ ๊ธฐ์ค์ผ๋ก ๊ฐ์ฅ ํฐ ๊ฐ
print(-1)
else:
print(limit[limit.index(max(limit,key = lambda x:x[1]))][1])
ํ์ด
ํฌ๋ ์ธ๊ณผ ๋ฐ์ค๋ค์ ๋ด๋ฆผ์ฐจ ์์ผ๋ก ์ ๋ ฌํ ๋ค์ ์ผ์ชฝ๋ถํฐ ์ฐจ๋ก๋๋ก ํฌ๋ ์ธ์ ๋ฐ์ค๋ฅผ ํ๋์ฉ ๋งค์นญ์ํจ๋ค.
ex)
3
6 8 9
5
2 5 2 4 7
์์ ๊ฐ์ด ์ ๋ ฅ์ ๋ฐ์๋ค๋ฉด
ํฌ๋ ์ธ์ 9 8 6
๋ฐ์ค๋ 7 5 4 2 2
9 | 8 | 6 |
7 | 5 | 4 |
ํ๋์ฉ ๋งค์นญ์ ์ํค๋ค๊ฐ ๋ง์ง๋ง ์ธ๋ฑ์ค์ ๋๋ฌํ๋ฉด ๋ค์ 0๋ฒ ์ธ๋ฑ์ค๋ถํฐ ์์ํด์ ๋งค์นญ์ํจ๋ค.
9 | 8 | 7 |
7 | 5 | 4 |
2 | 2 |
ํ ํฌ๋ ์ธ์ด ๊ฐ์ง ์์๋ค์ ๊ฐ์๊ฐ ์ต๋ 2๊ฐ์ด๋ฏ๋ก ๋ต์ 2๊ฐ ๋๋ค.
๋ง์ฝ ๋งค์นญ ์ค์ ํฌ๋ ์ธ์ ๋ฌด๊ฒ ์ ํ๋ณด๋ค ๋ฐ์ค์ ๋ฌด๊ฒ๊ฐ ๋ ํฐ ๊ฒฝ์ฐ์๋ ๊ฐ๋ฅํ ๊ฐ์ฅ ์ผ์ชฝ์์๋ถํฐ ๋ค์ ๋งค์นญ์ ์์ํ๋ค.
else:
for j in range((q+n)%n,(i+n-q)%n):
if weight[i] <=limit[j][0]:
limit[j][1] += 1
q+=1
break
๋ฐ๋ก... ์ค๋ฅ...
4
4 3 2 1
8
1 1 2 2 3 3 4 4
์์ ๊ฐ์ด ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ์ ์ฌ๋ฐ๋ฅธ ๊ฐ์ 2์ธ๋ฐ ๋ง์ง๋ง 1์ด ๊ฐ์ฅ ๋ง์ง๋ง์ ์ธ๋ฑ์ค์ ๋ค์ด๊ฐ์ง ์๊ณ ๋ค์ ์ผ์ชฝ์์๋ถํฐ ๋งค์นญ์ ์์ํด์ 3์ผ๋ก ์ ๋ชป ๋์จ๋ค...
์ฌ๋ฐ๋ฅธ ํ์ด
ํฌ๋ ์ธ๊ณผ ๋ฐ์ค๋ค์ ๋ด๋ฆผ์ฐจ ์์ผ๋ก ์ ๋ ฌํ๋ค.
๋ฐ์ค๊ฐ ๋จ์ง ์์ ๋๊น์ง ์๋์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
ํฌ๋ ์ธ์ ๋ด์ ์ ์๋ ๊ฐ์ฅ ํฐ ๋ฐ์ค๋ฅผ ๋ด๊ณ ๋ค์ ํฌ๋ ์ธ์ผ๋ก ๋์ด๊ฐ์ ๋ค์ ๋ ํฌ๋ ์ธ์ ๋ด์ ์ ์๋ ๊ฐ์ฅ ํฐ ๋ฐ์ค๋ฅผ ๋ด๊ณ .... x ๋ฌดํ๋ฐ๋ณต
→ํฌ๋ ์ธ์ ๋ด์ ๋ฐ์ค๋ ๋ฐ์ค ๋ฆฌ์คํธ์์ ์ ๊ฑฐํ๋ค.
'์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ 2437 : ์ ์ธ (Python) (2) | 2023.02.28 |
---|---|
BOJ 1339 : ๋จ์ด ์ํ (Python) (0) | 2023.02.20 |
BOJ 1715 : ์นด๋ ์ ๋ ฌํ๊ธฐ (Python) (0) | 2023.02.19 |
BOJ 1041 : ์ฃผ์ฌ์ (Python) (0) | 2023.02.15 |
BOJ 11000 : ๊ฐ์์ค ๋ฐฐ์ (Python) (0) | 2023.02.15 |