https://www.acmicpc.net/problem/2628
2628๋ฒ: ์ข ์ด์๋ฅด๊ธฐ
์๋ <๊ทธ๋ฆผ 1>๊ณผ ๊ฐ์ด ์ง์ฌ๊ฐํ ๋ชจ์์ ์ข ์ด๊ฐ ์๋ค. ์ด ์ข ์ด๋ ๊ฐ๋ก๋ฐฉํฅ๊ณผ ์ธ๋ก ๋ฐฉํฅ์ผ๋ก 1ใ๋ง๋ค ์ ์ ์ด ๊ทธ์ด์ ธ ์๋ค. ๊ฐ๋ก ์ ์ ์ ์์์ ์๋๋ก 1๋ฒ๋ถํฐ ์ฐจ๋ก๋ก ๋ฒํธ๊ฐ ๋ถ์ด ์๊ณ , ์ธ๋ก ์ ์
www.acmicpc.net
๋ฌธ์
์๋ <๊ทธ๋ฆผ 1>๊ณผ ๊ฐ์ด ์ง์ฌ๊ฐํ ๋ชจ์์ ์ข ์ด๊ฐ ์๋ค. ์ด ์ข ์ด๋ ๊ฐ๋ก๋ฐฉํฅ๊ณผ ์ธ๋ก ๋ฐฉํฅ์ผ๋ก 1ใ๋ง๋ค ์ ์ ์ด ๊ทธ์ด์ ธ ์๋ค. ๊ฐ๋ก ์ ์ ์ ์์์ ์๋๋ก 1๋ฒ๋ถํฐ ์ฐจ๋ก๋ก ๋ฒํธ๊ฐ ๋ถ์ด ์๊ณ , ์ธ๋ก ์ ์ ์ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ฒํธ๊ฐ ๋ถ์ด ์๋ค.

<๊ทธ๋ฆผ 1>
์ ์ ์ ๋ฐ๋ผ ์ด ์ข ์ด๋ฅผ ์นผ๋ก ์๋ฅด๋ ค๊ณ ํ๋ค. ๊ฐ๋ก ์ ์ ์ ๋ฐ๋ผ ์๋ฅด๋ ๊ฒฝ์ฐ๋ ์ข ์ด์ ์ผ์ชฝ ๋์์ ์ค๋ฅธ์ชฝ ๋๊น์ง, ์ธ๋ก ์ ์ ์ธ ๊ฒฝ์ฐ๋ ์์ชฝ ๋์์ ์๋์ชฝ ๋๊น์ง ํ ๋ฒ์ ์๋ฅธ๋ค. ์๋ฅผ ๋ค์ด, <๊ทธ๋ฆผ 1>์ ๊ฐ๋ก ๊ธธ์ด 10ใ์ด๊ณ ์ธ๋ก ๊ธธ์ด 8ใ์ธ ์ข ์ด๋ฅผ 3๋ฒ ๊ฐ๋ก ์ ์ , 4๋ฒ ์ธ๋ก ์ ์ , ๊ทธ๋ฆฌ๊ณ 2๋ฒ ๊ฐ๋ก ์ ์ ์ ๋ฐ๋ผ ์๋ฅด๋ฉด <๊ทธ๋ฆผ 2>์ ๊ฐ์ด ์ฌ๋ฌ ๊ฐ์ ์ข ์ด ์กฐ๊ฐ์ผ๋ก ๋๋๊ฒ ๋๋ค. ์ด๋ ๊ฐ์ฅ ํฐ ์ข ์ด ์กฐ๊ฐ์ ๋์ด๋ 30ใ ์ด๋ค.

<๊ทธ๋ฆผ 2>
์ ๋ ฅ์ผ๋ก ์ข ์ด์ ๊ฐ๋ก ์ธ๋ก ๊ธธ์ด, ๊ทธ๋ฆฌ๊ณ ์๋ผ์ผํ ์ ์ ๋ค์ด ์ฃผ์ด์ง ๋, ๊ฐ์ฅ ํฐ ์ข ์ด ์กฐ๊ฐ์ ๋์ด๊ฐ ๋ช ใ ์ธ์ง๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์ค์๋ ์ข ์ด์ ๊ฐ๋ก์ ์ธ๋ก์ ๊ธธ์ด๊ฐ ์ฐจ๋ก๋ก ์์ฐ์๋ก ์ฃผ์ด์ง๋ค. ๊ฐ๋ก์ ์ธ๋ก์ ๊ธธ์ด๋ ์ต๋ 100ใ์ด๋ค. ๋์งธ ์ค์๋ ์นผ๋ก ์๋ผ์ผํ๋ ์ ์ ์ ๊ฐ์๊ฐ ์ฃผ์ด์ง๋ค. ์ ์งธ ์ค๋ถํฐ ๋ง์ง๋ง ์ค๊น์ง ํ ์ค์ ์ ์ ์ด ํ๋์ฉ ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ ๋ ฅ๋๋ค. ๊ฐ๋ก๋ก ์๋ฅด๋ ์ ์ ์ 0๊ณผ ์ ์ ๋ฒํธ๊ฐ ์ฐจ๋ก๋ก ์ฃผ์ด์ง๊ณ , ์ธ๋ก๋ก ์๋ฅด๋ ์ ์ ์ 1๊ณผ ์ ์ ๋ฒํธ๊ฐ ์ฃผ์ด์ง๋ค. ์ ๋ ฅ๋๋ ๋ ์ซ์ ์ฌ์ด์๋ ๋น ์นธ์ด ํ๋์ฉ ์๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๊ฐ์ฅ ํฐ ์ข ์ด ์กฐ๊ฐ์ ๋์ด๋ฅผ ์ถ๋ ฅํ๋ค. ๋จ, ๋์ด์ ๋จ์๋ ์ถ๋ ฅํ์ง ์๋๋ค.

๋ฌธ์ ํ์ด
- ๊ฐ๋ก ๋ณ์ ์๋ฅด๋ ์ ์ ์ธ๋ก ์ ์ด๋ฏ๋ก, ์ฒซ ์์์ธ 1๋ฒ ์ ๋ถํฐ for๋ฌธ ์ด์ฉํด์ ํ์ํ๋ฉด์ cur ๋ณ์์ +1ํด์ฃผ๋ค๊ฐ ์ธ๋ก๋ก ์๋ฆฌ๋ ์ ์ ๋ฒํธ๋ฅผ ์ ์ฅํด๋ sero_cut์ ๊ฐ์ด 1์ธ ๋ฒํธ๋ฅผ ๋ง๋๋ฉด ๊ฐ๋ก ๋ณ์ ๊ฐ๋ฅํ ๊ธธ์ด๋ฅผ ์ ์ฅํด๋๋ garo_possible_line ๋ฐฐ์ด์ cur ๋ณ์๋ฅผ ์ถ๊ฐํด์ฃผ๊ณ , cur ๋ณ์๋ฅผ 1๋ก ์ด๊ธฐํํ๋ค.
- ์ดํ ๋ค์ for๋ฌธ์ ๋๋ฉด์ sero_cut์ ๊ฐ์ด 1์ธ ๋ฒํธ๋ฅผ ๋ง๋๋ฉด ๋ cur ๋ณ์๋ฅผ garo_possible_line์ ์ถ๊ฐํด์ฃผ๋ ์์ผ๋ก ํด๋น ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
- ๊ทธ๋ฌ๋ค ํ์ํ๋ ๋ฒํธ๊ฐ ๋ง์ง๋ง ์ ์ฆ, (๊ฐ๋ก๊ธธ์ด-1)๋ฒ์ธ ์ ์ ๋ง๋๋ค๋ฉด, ํด๋น ์ ์ด ์๋ฆฌ๋ ์ ์ด ์๋๋ผ๋ฉด (sero_cut ๊ฐ=0) ๊ธฐ์กด์ cur์ +1ํด์ ์ถ๊ฐํด์ฃผ๊ณ , ์๋ฆฌ๋ ์ ์ด๋ผ๋ฉด(sero_cut ๊ฐ=1) cur ๊ทธ๋๋ก ์ถ๊ฐํด์ค๋ค.
- ์ธ๋ก ๋ณ๋ ์ด์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ธ๋ก ๋ณ์ ๊ฐ๋ฅํ ๊ธธ์ด๋ฅผ sero_possible_line์ ์ ์ฅํด๋๋ค.
- ๊ฒฐ๊ณผ๋ max(garo_possible_line)*max(sero_possible_line) ์ฆ, ๊ฐ๋ฅํ ๊ฐ์ฅ ๊ธด ๊ฐ๋ก ๊ธธ์ด์ ์ธ๋ก ๊ธธ์ด๋ฅผ ๊ณฑํด์ค ๊ฐ์ด ์ต๋ ๋์ด๊ฐ ๋๋ค.
import sys
garo, sero = map(int, sys.stdin.readline().split(' '))
num=int(sys.stdin.readline())
garo_cut=[0]*(sero)
sero_cut=[0]*(garo)
# how๊ฐ 0์ด๋ฉด ๊ฐ๋ก ์ค, 1์ด๋ฉด ์ธ๋ก ์ค
for _ in range(num):
how, line = map(int, sys.stdin.readline().split(' '))
if how==0:
garo_cut[line]=1
elif how==1:
sero_cut[line]=1
garo_possible_line=[]
sero_possible_line=[]
cur=1
for i in range(1,garo):
if i==garo-1:
if sero_cut[i]==1:
garo_possible_line.append(cur)
else:
garo_possible_line.append(cur+1)
break
if sero_cut[i]==1:
garo_possible_line.append(cur)
cur=1
else:
cur+=1
cur=1
for i in range(1,sero):
if i==sero-1:
if garo_cut[i]==1:
sero_possible_line.append(cur)
else:
sero_possible_line.append(cur+1)
break
if garo_cut[i]==1:
sero_possible_line.append(cur)
cur=1
else:
cur+=1
print(max(sero_possible_line)*max(garo_possible_line))
- ๊ทธ๋ฐ๋ฐ ์ด ํ์ด๋ ํ๋ฉด์๋ ๋ ๊ฐ๊ฒฐํ๊ณ ์ฌ์ด ํ์ด๊ฐ ์์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ ํ์์ง๋ง, ์ฝ๊ฒ ๋ ์ค๋ฅด์ง ์์ ํ์ด๋ฅผ ์ ์ถํ ๋ค์ ํต๊ณผ๋ฅผ ๋ฐ๊ณ ๋ค๋ฅธ ๋ถ์ ํ์ด๋ฅผ ํ์ธํ๋๋ ํจ์ฌ ์ง๊ด์ ์ธ ํ์ด๊ฐ ์์๋ค..!
๋ค๋ฅธ ์ฌ๋ ํ์ด
w,h = map(int,input().split())
W = [w,0]
H = [h,0]
T = int(input())
for i in range (0,T):
d, n = map(int,input().split())
if d == 0:
H.append(n)
if d == 1:
W.append(n)
W.sort()
H.sort()
width=[]
for i in range (1,len(W)):
for j in range (1,len(H)):
width.append((W[i]-W[i-1]) * (H[j]-H[j-1]))
print(max(width))
์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด W ๋ฐฐ์ด์ ๊ฐ๋ก ๋ณ์ ๊ธฐ์ค์ด ๋๋ ์ ๋ค์ ๋ชจ๋ ์ ์ฅํด๋๊ณ , H ๋ฐฐ์ด์ ์ธ๋ก ๋ณ์ ๊ธฐ์ค์ด ๋๋ ์ ๋ค์ ๋ชจ๋ ์ ์ฅํด์ค ๋ค์
W[i]-W[i-1], H[i]-H[i-1] ๊ณผ ๊ฐ์ด ๊ฐ๋ฅํ ๋ชจ๋ ๋ณ์ ๊ธธ์ด๋ค์ ์๋ก ๊ณฑํด์ค ๋ค์ ๊ฐ์ฅ ํฐ ๊ฐ์ ๊ตฌํ๋ ๊ฒ์ด๋ค.
์ด๋ฐ ํ์ด๋ฅผ ์๊ฐํด๋ผ ์ค ์๋ ์ฌ๋์ด ๋์!
'์๊ณ ๋ฆฌ์ฆ > ๊ตฌํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 11559 ๐ฅ] Puyo Puyo (1) | 2023.10.11 |
---|---|
[๋ฐฑ์ค 20006 ๐ฅ] ๋ญํน์ ๋๊ธฐ์ด (1) | 2023.10.07 |
[๋ฐฑ์ค 3758 ๐ฅ] KCPC (0) | 2023.10.07 |
[๋ฐฑ์ค 3967 ๐ฅ] ๋งค์ง ์คํ (0) | 2023.10.07 |
[๋ฐฑ์ค 1138 ๐ฅ] ํ ์ค๋ก ์๊ธฐ (0) | 2023.09.12 |