~์ค๋ฒ 3~
https://www.acmicpc.net/problem/1783
[๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ]
1. ์ ํ ์ฌํญ์ ๋จ๊ณ์ ์ผ๋ก ๋ถ๋ฆฌํ๊ธฐ
2. n์ ์ ํ ์ฌํญ ์ดํดํ๊ธฐ
3. m์ ์ ํ ์ฌํญ ์ดํดํ๊ธฐ
1. ์ ํ ์ฌํญ์ ๋จ๊ณ์ ์ผ๋ก ๋ถ๋ฆฌํ๊ธฐ
์ฒ์์ ๋ฌธ์ ๋ฅผ ์ฝ์ผ๋ฉด '... ๋ญ ์ด์ฉ๋ผ๋ ๊ฑฐ์ผ' ํน์ '์ด๊ฑธ ์ด๋ป๊ฒ ํ๋ผ๋ ๊ฑฐ์ผ'๋ผ๋ ์๊ฐ์ ํ ์ง๋ ๋ชจ๋ฅธ๋ค
๋ด๊ฐ ๊ทธ๋ฌ๋ค
๋ค์ ํ๋ฒ ๋ฌธ์ ๋ฅผ ์ฐฌ์ฐฌํ ์ดํด๋ณด๊ณ ์ ํ ์ฌํญ์ ๊ผผ๊ผผํ ์ดํด๋ณด๋ฉฐ์นจ์ฐฉํ๊ฒ ์๊ฐํด ๋ณผ ํ์๊ฐ ์๋ค.
๋ชจ๋ ์์ ์์น๋ (0, 0)์ด๋ผ๊ณ ๊ฐ์ ํ๋ค.
์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ n๊ณผ m์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๊ทธ ์ ํ ์ฌํญ์ด ๊ฒฐ์ ๋๋๋ฐ,
n(ํ ํน์ x์ถ)์ 3 ์ด์๋ง ๋์ด๋ 2, 3๋ฒ ์์ง์์ ์ฌ๋ฌ ๋ฒ ์ฌ์ฉํ ์ ์๋ค.
(ํ์ง๋ง 5ํ ์ด์์ ์กฐ๊ฑด์ ์๋ฐฐ๋๋ฏ๋ก ์ต๋ 4๋ฒ๊น์ง)
m(์ด ํน์ y์ถ)์ ๋์ดํธ์ ์์ง์์ ๋ฐ๋์ ํฌํจ๋๋ ์ค์ํ ์์์ด๋ค.
m์ ํฌ๊ธฐ ๋ฐ๋ผ ์ต์ข ๋ต์ด ๊ฒฐ์ ๋๊ธฐ ๋๋ฌธ์ด๋ค.
2. n์ ์ ํ ์ฌํญ ์ดํดํ๊ธฐ
์์ n์ ํฌ๊ธฐ์ ๋ฐ๋ผ ์ ํ ์ฌํญ์ด ๊ฒฐ์ ๋๋ค๊ณ ํ๋ค.
์ด๋ป๊ฒ ๋ค๋ฅผ๊น?
1) n == 1์ด๋ผ๋ฉด
์๋ฌด๋ฆฌ m๊ฐ์ด ํฌ๋๋ผ๋ ์์ง์ผ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋ค.
๊ทธ๋ฌ๋ฏ๋ก ์์ ์์น (0, 0)์ ์ ์ธํ๋ฉด ๋ฐฉ๋ฌธํ ์นธ์ ์๋ค.
if n == 1:
print(1)
2) n == 2์ด๋ผ๋ฉด
(0, 0)์์ 3๋ฒ ์์ง์ '1์นธ ์๋๋ก, 2์นธ ์ค๋ฅธ์ชฝ'
(1, 2)์์ 2๋ฒ ์์ง์ '1์นธ ์๋ก, 2์นธ ์ค๋ฅธ์ชฝ'
......
m์ด ์ถฉ๋ถํ ํฌ๋ค๋ฉด(7 ์ด์์ด๋ฉด) ์ด๋ ๊ฒ 2, 3๋ฒ์ ๋ฐ๋ณตํ ์ ์์ ๊ฒ์ด๋ค.
ํ์ง๋ง ์ฃผ์ํ ์ ์ ๋ฐฉ๋ฌธํ ์์น๊ฐ 5๊ตฐ๋ฐ ์ด์์ด ๋๋ฉด 1~4์กฐ ๊ฑด์ ๋ชจ๋ ๋ง์กฑํด์ผ ํ๋๋ฐ,
ํด๋น ๊ฒฝ์ฐ๋ 2, 3๋ฒ๋ง ๋ง์กฑํ์ผ๋ฏ๋ก ์ต๋ 4๋ฒ๊น์ง ๊ฐ๋ฅํ๋ค
๋ฌผ๋ก m์ด ์ถฉ๋ถํ ํฌ๋ค๋ ์กฐ๊ฑด์์ ๋ง์ด๋ค.
m์ด ์ถฉ๋ถํ ํฌ์ง ์๋ค๋ฉด 2, 3์กฐ๊ฑด์ ํญ์ 2์ฉ ์์ง์ด๋ฏ๋ก
m//2๋ฒ ์์ง์ผ ์ ์์ ๊ฒ์ด๋ค.
์ฒ์ ์์น (0, 0)์ ๋ํ๋ ๊ฒ๋ ์์ง ๋ง์
if n == 2:
print(min(4, (m-1)//2 + 1))
2) n == 3์ด๋ผ๋ฉด
์์ ๋งํ๋ฏ n์ด 3 ์ด์์ด๋ผ๋ฉด n์ ๋ํ ์ ํ ์ฌํญ์ ๋ ์ด์ ์๋ค.
๋ชจ๋ 1~4 ์์ง์์์ ์, ์๋ ์กฐ๊ฑด์ ๋ง์กฑ์ํฌ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด์ ๋ถํฐ๋ m์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค
3. m์ ์ ํ ์ฌํญ ์ดํดํ๊ธฐ
n์ด 3 ์ด์์ผ ๋๋ฅผ ๊ฐ์ ํ๊ณ m์ ์ ํ ์ฌํญ์ ์๊ฐํด์ผ ํ๋ค.
n์ ํฌ๊ธฐ๋ 3 ์ด์์ด๊ธฐ๋ง ํ๋ฉด ์๋ฌด๋ฆฌ ์ปค๋ ์ต์ข ํฌ๊ธฐ์ ์ํฅ์ ์ค ์ ์๋ค.
๋ชจ๋ ์์ง์์๋ ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ์ผ ํ๋ ์ ํ ์ฌํญ์ด ์๊ณ , ์ด๋ฅผ ์ต์ํํ๋ ๊ฒ์ด
์ด ๋ต์ ํต์ฌ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
1) m <= 6์ด๋ผ๋ฉด?
์ด๋ ๊ฒ 1์นธ ์ค๋ฅธ์ชฝ ์์ง์์ ํฌํจํ๋ 1, 4๋ฒ์ผ๋ก ์ต๋ ์์ง์์ ๊ตฌํ ์ ์๋ค!
์ด๊ฒ ์ ์ต๋๋๋ฉด 2, 3๋ฒ ์์ง์์ด ๋ค์ด๊ฐ๋ ์๊ฐ m์ ์ ํ๋ ํฌ๊ธฐ๋ฅผ ํ๋นํ๊ธฐ ๋๋ฌธ์ด๋ค
์ต๋ํ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ ๊ฐ๋ ๋ฐฉํฅ์ด ํต์ฌ์ด๋ค!
๊ทธ๋ฐ๋ฐ ์ฃผ์ํ ์ ์ ๋ชจ๋ ์์ง์์ ๋ง์กฑํ์ง ์๋ ์ด์ 4 ์ด์์ด ๋๋ฉด ์ ๋๋ค๋ ๊ฒ์ด๋ค
else:
if m <= 6:
print(min(4, m))
2) m == 7์ด๋ผ๋ฉด?
์ฐ๋ฆฌ๋ฅผ ์ญ์๋งค๋ ์ ํ ์ฌํญ์ด ๋ชจ๋ ํด๋ฐฉ๋์๋ค!!
'n >= 3 and m == 7'์ธ ๊ฒฝ์ฐ์ธ๋ฐ,
๋ชจ๋ 1~4 ์์ง์์ ์ปค๋ฒํ ์ ์๋ ํฌ๊ธฐ์ด๊ธฐ ๋๋ฌธ์ 7์ด์ด์ผ๋ง ํ๋ ๊ฒ์ด๋ค.
๋ชจ๋ ์์ง์์ ์ปค๋ฒํ๋ฉด ๋ค์ ๊ฐ๋ค.
๋๊ทธ๋ผ๋ฏธ ์ซ์ ์์๋๋ก ์ดํด๋ณด๋ฉด
3๋ฒ : 1์นธ ์๋๋ก, 2์นธ ์ค๋ฅธ์ชฝ
2๋ฒ : 1์นธ ์๋ก, 2์นธ ์ค๋ฅธ์ชฝ
4๋ฒ : 2์นธ ์๋๋ก, 1์นธ ์ค๋ฅธ์ชฝ
1๋ฒ : 2์นธ ์๋ก, 1์นธ ์ค๋ฅธ์ชฝ
๋ชจ๋ ์กฐ๊ฑด์ ๋ง์กฑํ ๋ชจ์ต์ด๋ค.
3) m > 7์ด๋ผ๋ฉด?
m์ด 7์ผ ๋ ์กฐ๊ฑด์์ ์กฐ๊ธ๋ง ๋ ์๊ฐํด ๋ณด๋ฉด
์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ๋ ๊ฒ์ ์ต์ํํ๋ ๊ฒ์ด ์ต๋ ์์ง์์ ํต์ฌ์ด๋ผ๋ ๊ฒ์ ๋ ์ฌ๋ฆด ์ ์๋ค!
๊ทธ๋ฌ๋ฏ๋ก ๋ชจ๋ ์กฐ๊ฑด์ ๋ง์กฑํ ์ํ ์ดํ๋ ์์ง์์ ์ ํ์ด ์ ์ผ๋ฏ๋ก m์ ๊ฐ์ ๋ฐ๋ผ
1, 4 ์์ง์์ ๋ฐ๋ณตํ ์ ์๊ฒ ๋๋ค.
์ฆ, 7์ผ ๋ ์ต๋๊ฐ์ 5
8์ผ ๋ ์ต๋๊ฐ์ 6
9์ผ ๋ ์ต๋๊ฐ์ 7
......
m-2๊ฐ ์ต๋๊ฐ์ด ๋๋ค.
else:
print(m-2)
<์ต์ข ์ฝ๋>
n, m = map(int, input().split())
if n == 1:
print(1)
elif n == 2:
print(min(4, (m-1)//2 + 1))
elif m <= 6:
print(min(4, m))
else:
print(m-2)
'๐๋ฌธ์ ํ์ด > ๐งฉBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๋ฐฑ์ค 1373 2์ง์ 8์ง์| ์๊ฐ ์ด๊ณผ | ๋ด์ฅ ํจ์ oct (0) | 2023.02.11 |
---|---|
[Python] ๋ฐฑ์ค 2563 ์์ข ์ด (2) | 2023.02.01 |
[Python] ๋ฐฑ์ค 4796 ์บ ํ | ๊ทธ๋ฆฌ๋(Greedy) ์๊ณ ๋ฆฌ์ฆ | ํ์์ค๋ฌ์ด ์๊ณ ๋ฆฌ์ฆ (0) | 2023.01.13 |
[Python] ๋ฐฑ์ค 1181 ๋จ์ด ์ ๋ ฌ | ๋ด์ฅํจ์ (0) | 2023.01.07 |
[Python] 10989 ์ ์ ๋ ฌํ๊ธฐ 3 | ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ | ์๊ฐ ์ด๊ณผ (2) | 2023.01.06 |