๐ [๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ ํ์ด] Q.1783 ๋ณ๋ ๋์ดํธ ๋ฌธ์ ํ์ด
๐ ๋ฌธ์
https://www.acmicpc.net/problem/1783
๋ณ๋ ๋์ดํธ๊ฐ N ร M ํฌ๊ธฐ ์ฒด์คํ์ ๊ฐ์ฅ ์ผ์ชฝ์๋ ์นธ์ ์์นํด ์๋ค. ๋ณ๋ ๋์ดํธ๋ ๊ฑด๊ฐํ ๋ณดํต ์ฒด์ค์ ๋์ดํธ์ ๋ค๋ฅด๊ฒ 4๊ฐ์ง๋ก๋ง ์์ง์ผ ์ ์๋ค.
1. 2์นธ ์๋ก, 1์นธ ์ค๋ฅธ์ชฝ
2. 1์นธ ์๋ก, 2์นธ ์ค๋ฅธ์ชฝ
3. 1์นธ ์๋๋ก, 2์นธ ์ค๋ฅธ์ชฝ
4. 2์นธ ์๋๋ก, 1์นธ ์ค๋ฅธ์ชฝ
๋ณ๋ ๋์ดํธ๋ ์ฌํ์ ์์ํ๋ ค๊ณ ํ๊ณ , ์ฌํ์ ํ๋ฉด์ ๋ฐฉ๋ฌธํ ์นธ์ ์๋ฅผ ์ต๋๋ก ํ๋ ค๊ณ ํ๋ค. ๋ณ๋ ๋์ดํธ์ ์ด๋ ํ์๊ฐ 4๋ฒ๋ณด๋ค ์ ์ง ์๋ค๋ฉด,
์ด๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ ํ ๋ฒ์ฉ ์ฌ์ฉํด์ผ ํ๋ค. ์ด๋ ํ์๊ฐ 4๋ฒ๋ณด๋ค ์ ์ ๊ฒฝ์ฐ(๋ฐฉ๋ฌธํ ์นธ์ด 5๊ฐ ๋ฏธ๋ง)์๋ ์ด๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ์ฝ์ด ์๋ค.
์ฒด์คํ์ ํฌ๊ธฐ๊ฐ ์ฃผ์ด์ก์ ๋, ๋ณ๋ ๋์ดํธ๊ฐ ์ฌํ์์ ๋ฐฉ๋ฌธํ ์ ์๋ ์นธ์ ์ต๋ ๊ฐ์๋ฅผ ๊ตฌํด๋ณด์.
๐ ์ ๊ทผ๋ฒ
Q.1783 ๋ณ๋ ๋์ดํธ ๋ฌธ์ ํ์ด์ ๋๋ค.
N X M ํฌ๊ธฐ ์ฒด์คํ์์ ๊ฐ์ฅ ์ผ์ชฝ ์๋ ์นธ์์ ์ถ๋ฐํ๊ณ ๋ฐฉ๋ฌธํ ์ ์๋
์นธ์ ์ต๋ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ ๋๋ค.
์ฐ์ ์ ์๋๋ก๋ ์์ ๋กญ๊ฒ ์์ง์ผ ์ ์์ง๋ง ์์ผ๋ก๋ ๊ณ์ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ฐ์
๊ฐ์ง ๋ชป ํฉ๋๋ค.
๋ํ 4๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ์ ์์ง์ด์ง ๋ชป ํ๋ฏ๋ก
์ฌ๋ฌ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๊ฐ ์ ์๋ ์นธ์ด ๋ฌ๋ผ์ง๋๋ค.
๊ฐ ๊ท์น์ ๋ฐ๋ผ ๋ฐฉ๋ฌธํ ์ ์๋ ์ต๋ ์นธ์ ๊ตฌํ ์ ์์ต๋๋ค.
1) ๋์ด 1์ธ ๊ฒฝ์ฐ
- ์ฐ์ ๋์ด๊ฐ 1์ธ ๊ฒฝ์ฐ์๋ ์ ์๋๋ก ์์ง์ผ ์ ์๊ธฐ ๋๋ฌธ์ ์ฒ์ ์๋ฆฌ 1์นธ ๋ฐ์ ๋ฐฉ๋ฌธ์ ๋ชปํ๊ณ
2) ๋์ด 2์ธ ๊ฒฝ์ฐ
- ๋์ด๊ฐ 2์ธ ๊ฒฝ์ฐ์๋ 2๋ฒ 3๋ฒ ๊ฒฝ์ฐ๋ก ๋ฐ์ ๋ชป ์์ง์
๋๋ค.
๊ท์น์ ์ํด์ (M+1) / 2๊ฐ ์ต๋ํ
- ๋จ, 4๊ฐ์ง ๊ฒฝ์ฐ๋ก ๋ชจ๋ ์์ง์ผ ์ ์๊ธฐ ๋๋ฌธ์ ์ต๋ 4์นธ๊น์ง๋ง ๋ฐฉ๋ฌธ ๊ฐ๋ฅ ํฉ๋๋ค.
๊ฐ๋ก๊ฐ 8๋ณด๋ค ํฌ๋๋ผ๋ 4์นธ๊น์ง๋ง ๋ฐฉ๋ฌธ ๊ฐ๋ฅ
3) ๋์ด๊ฐ 3 ์ด์์ธ ๊ฒฝ์ฐ
3-1) ๊ฐ๋ก๊ฐ 6๋ณด๋ค ํฐ๊ฒฝ์ฐ (4๊ฐ์ง ๊ฒฝ์ฐ๋ก ๋ชจ๋ ์์ง์ผ ์ ์์ ๋)
- ๋์ด๊ฐ 3 ์ด์์ธ ๊ฒฝ์ฐ์๋ 4๊ฐ์ง ๊ฒฝ์ฐ ๋ชจ๋ ์์ง์ผ ์ ์๊ณ 4 ๋ฐฉํฅ ๋ชจ๋ ์์ง์ผ ๊ฒฝ์ฐ์ ์ค๋ฅธ์ชฝ์ผ๋ก 6์นธ ์ด๋ํฉ๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ก๊ฐ 6๋ณด๋ค ๋์ ๊ฒฝ์ฐ์๋ 4 ๋ฐฉํฅ์ผ๋ก ๋ชจ๋ ์์ง์ด๊ณ 1์นธ์ฉ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋ฉด ์ต๋๊ฐ ๋ฉ๋๋ค.
์ฆ M - 6 + 4 ๊ฐ ์ต๋ ๋ฐฉ๋ฌธํ ์ ์๋ ์นธ์ด ๋ฉ๋๋ค.
(4๊ฐ์ง ๊ฒฝ์ฐ ๋ชจ๋ ์์ง์ด๋๋ฐ ์ค๋ฅธ์ชฝ์ผ๋ก 6์นธ ์๋ชจ 6์นธ ์๋ชจํด์ 4๊ณณ ๋ฐฉ๋ฌธ ๋๋จธ์ง๋ ์ค๋ฅธ์ชฝ์ผ๋ก ํ์นธ์ฉ๋ง ์์ง์ด๋ฉด ๋จ)
3-2) ๊ฐ๋ก๊ฐ 6๋ณด๋ค ์์ ๊ฒฝ์ฐ (4๊ฐ์ง ๊ฒฝ์ฐ๋ก ๋ชจ๋ ์์ง์ผ ์ ์์)
- 1์นธ์ฉ๋ง ์์ง์ฌ M์นธ ๋ฐฉ๋ฌธํ๊ฑฐ๋ ์ต๋ 4์นธ๊น์ง๋ง ๋ฐฉ๋ฌธ ๊ฐ๋ฅ
์ด๋ฌํ ๊ท์น์ ๋ฐ๋ผ ๋ต์ ๋์ถ ํ ์ ์์ต๋๋ค.
๐ป ์ฝ๋
package problem.greedy;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main_1783 {
static int N;
static int M;
public static void main(String[] args) throws IOException {
input();
System.out.println(solve());
}
public static void input() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().split(" ");
N = Integer.parseInt(input[0]);
M = Integer.parseInt(input[1]);
br.close();
}
public static int solve() {
if (N == 1) {
return 1;
} else if (N == 2) {
if (M > 8) {
return 4;
}
return ((M + 1) / 2);
} else {
if (M > 6) {
return M - 6 + 4;
} else {
return Math.min(M, 4);
}
}
}
}
Written on February 3, 2021