https://www.acmicpc.net/problem/1783
์ฝ๋
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt(); // ์ธ๋ก
int M = scan.nextInt(); // ๊ฐ๋ก
int visitRoom = 1; // ๋ฐฉ๋ฌธํ ์ ์๋ ์นธ์ ์
if(N == 1) // ์ธ๋ก๊ธธ์ด๊ฐ 1 => ์ฒ์์ ์๋ ์นธ๋ง ๊ฐ๋ฅ
visitRoom = 1;
else if(N == 2) { // ์ธ๋ก ๊ธธ์ด๊ฐ 2 => ์ค๋ฅธ์ชฝ์ผ๋ก๋ ๋ฌด์กฐ๊ฑด 2์นธ๋ง ๊ฐ ์ ์์.
if(M>=7) // ์ค๋ฅธ์ชฝ์ผ๋ก 3๋ฒ ๊ฐ ์ ์์(6์นธ)
visitRoom += 3;
else if(M<7 && M>=5) // ์ค๋ฅธ์ชฝ์ผ๋ก 2๋ฒ ๊ฐ ์ ์์(4์นธ)
visitRoom += 2;
else if(M == 3 || M == 4) // ์ค๋ฅธ์ชฝ์ผ๋ก 1๋ฒ ๊ฐ ์ ์์(2์นธ)
visitRoom += 1;
}
// ์ธ๋ก ๊ธธ์ด๊ฐ 3์ด์์ธ ๊ฒฝ์ฐ => 2์นธ ์๋ก, 2์นธ ์๋๋ก ๊ฐ๋ฉด์ ์ค๋ฅธ์ชฝ ๊ธธ์ด๋ง ํ๋จํ๋ค.
else {
if(M > 6) { // ์ด๋ ํ์๊ฐ 4๋ฒ ์ด์์ด ๋๋ ์ต์ ๊ฐ๋ก์ ๊ธธ์ด
visitRoom += 4; // ์ด๋ ํ์ 4๋ฒ
M -= 7; // 4๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ํ ์ต๋ ๊ฐ์ ๊ตฌํ๊ธฐ
visitRoom += M; // ๋๋จธ์ง๋ ์ค๋ฅธ์ชฝ์ผ๋ก 1์นธ์ฉ ๊ฐ๋ฉด ๋๋ฏ๋ก ๋จ์ ๊ฐ๋ก๊ธธ์ด๋งํผ ๋ํ๋ค.
}
else { // ์ด๋ ํ์๊ฐ 4๋ฒ์ด ์๋๋ ๊ฐ๋ก์ ๊ธธ์ด => ์ต๋ ๊ฐ ์ ์๋ ์นธ์ ๊ฐ์ ํ๋ณ.
if(M>=4 && M<=6) // ์ค๋ฅธ์ชฝ์ผ๋ก 3๋ฒ ๊ฐ ์ ์์.
visitRoom += 3;
else if(M == 3) // ์ค๋ฅธ์ชฝ์ผ๋ก 2๋ฒ ๊ฐ ์ ์์.
visitRoom += 2;
else if(M == 2) // ์ค๋ฅธ์ชฝ์ผ๋ก 1๋ฒ ๊ฐ ์ ์์.
visitRoom += 1;
}
}
System.out.println(visitRoom);
scan.close();
}
}
ํ์ด
๋ชจ๋ ์ผ์ด์ค๋ฅผ ๋ค ์๊ฐํด๊ฐ๋ฉฐ ๊ตฌํํ๋ค. ๋ฌธ์ ํ๋ฉด์๋ ํ ์คํธ ์ผ์ด์ค๋ ๋ค๋ง์์ผ๋ ๋ฐ๋ก๊ฐ ์์ ๊ฒ ๊ฐ์๋๋ฐ ํต๊ณผ...
๋ฌธ์ ์์ ์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ๋ค.
N * M ํฌ๊ธฐ์ ์ฒด์คํ(N = ์ธ๋ก, M = ๊ฐ๋ก)
๋ณ๋ ๋์ดํธ๊ฐ ์์ง์ผ ์ ์๋ ๋ฐฉ๋ฒ์ 4๊ฐ์ง.
1๋ฒ. 2์นธ ์๋ก, 1์นธ ์ค๋ฅธ์ชฝ
2๋ฒ. 1์นธ ์๋ก, 2์นธ ์ค๋ฅธ์ชฝ
3๋ฒ. 1์นธ ์๋๋ก, 2์นธ ์ค๋ฅธ์ชฝ
4๋ฒ. 2์นธ ์๋๋ก, 1์นธ ์ค๋ฅธ์ชฝ
์ต๋ํ ๋ง์ ์นธ์ ๋ฐฉ๋ฌธํ๊ธธ ์ํ๊ณ , ๋ง์ฝ ๋์ดํธ์ ์ด๋ ํ์๊ฐ 4๋ฒ ์ด์์ผ ๊ฒฝ์ฐ ์ 4๊ฐ์ง ๋ฐฉ๋ฒ์ ์ต์ ํ๋ฒ์ ์ฌ์ฉํด์ผ ํ๋ค.
์กฐ๊ฑด์ ์๋ณด๋ฉด ์์ ์๋๋ก๋ ๊ฐ์ง๋ง, ํญ์ ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ๋ค.
๋ฐ๋ผ์, ๊ฐ๋ก์ ์กฐ๊ฑด์ ์ ๋ฐ์ ธ๊ฐ๋ฉฐ ํ์ด์ผ ํ๋ค.
๋ํ ๋์ดํธ์ ์ด๋ ํ์๊ฐ 4๋ฒ ์ด์์ด ๋๋ ค๋ฉด N์ ํฌ๊ธฐ๋ 3์ด์์ด์ด์ผ ํ๊ณ , M์ ํฌ๊ธฐ๋ 7์ด์์ด์ด์ผ ํ๋ค.
๋ฐ๋ผ์ ์ธ๋ก์ ํฌ๊ธฐ(N์ ํฌ๊ธฐ)๊ฐ 1์ผ๋, 2์ผ๋, 3์ด์์ผ๋ ์ด ์ธ ๊ฐ์ง๋ก ๋๋์ด ํ์๋ค.
์ธ๋ก์ ํฌ๊ธฐ๊ฐ 2์ผ๋๋ ์ ๋ฐฉ๋ฒ์ค 2๋ฒ, 3๋ฒ๋ง ์ฌ์ฉํ ์ ์๋ค.
์๋ํ๋ฉด 1๋ฒ๊ณผ 4๋ฒ์ ๊ฒฝ์ฐ ์๋ก 2์นธ์ ๊ฐ๊ฑฐ๋ ์๋๋ก ๊ฐ์ผํ์ง๋ง, ์ธ๋ก์ ํฌ๊ธฐ๊ฐ 2์ด๊ธฐ ๋๋ฌธ์ ์ฒด์คํ์์ ๋ฒ์ด๋๊ธฐ ๋๋ฌธ์ด๋ค.
์ธ๋ก์ ํฌ๊ธฐ๊ฐ 3์ผ๋๋,
์ด๋ ํ์๊ฐ 4๋ฒ ์ด์์ด ๋๋๋, ์ด๋ ํ์๊ฐ 3๋ฒ์ด๋, 2๋ฒ์ด๋, 1๋ฒ์ด๋ ๋ฑ์ ๋ฐ๋ผ ์กฐ๊ฑด์ ๋๋ ์ฃผ๋ฉด ๋๋ค.
ํ๋ฉด์๋ ๋๋ฌด ๋ณต์กํ ๊ฒ ๊ฐ์์ ๋ค๋ฅธ ํ์ด๋ค์ ์ฐธ๊ณ ํด๋ดค๋ค.
import java.util.*;
public class Test{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int m = scan.nextInt();
int cnt =0;
if(n==1)
cnt = 1;
else if(n==2)
cnt = (int)Math.min(4, (m+1)/2);
else
{
if(m<7)
cnt = Math.min(4, m);
else
cnt = m-2;
}
System.out.println(cnt);
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
class Main {
static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) throws IOException {
StringTokenizer tokenizer = new StringTokenizer(reader.readLine());
int n = Integer.parseInt(tokenizer.nextToken());
int m = Integer.parseInt(tokenizer.nextToken());
if (n == 1) {
System.out.println(1);
} else if (n == 2) {
System.out.println(Math.min(4,(m+1)/2));
} else {
if (m <= 6) System.out.println(Math.min(4,m));
else System.out.println(m-2);
}
}
}
ํํ ...
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค[Java] - ๊ตฌ๋ช ๋ณดํธ(๊ทธ๋ฆฌ๋) (0) | 2020.02.04 |
---|---|
[๋ฐฑ์ค] 9625๋ฒ: BABBA(DP) (0) | 2020.02.04 |
[๋ฐฑ์ค] 2667๋ฒ: ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ(๊ทธ๋ํ, DFS) (0) | 2020.02.03 |
[๋ฐฑ์ค] 1049๋ฒ: ๊ธฐํ์ค(๊ทธ๋ฆฌ๋, ๊ตฌํ) (0) | 2020.02.03 |
[๋ฐฑ์ค] 1543๋ฒ: ๋ฌธ์ ๊ฒ์(๊ทธ๋ฆฌ๋, ์์ ํ์) (0) | 2020.02.03 |
๋๊ธ