https://www.acmicpc.net/problem/1459
1459๋ฒ: ๊ฑท๊ธฐ
์ธ์ค์ด๋ ํ๊ต์์ ์ง์ผ๋ก ๊ฐ๋ ค๊ณ ํ๋ค. ๋์์ ํฌ๊ธฐ๋ ๋ฌดํ๋์ด๊ณ , ๋์์ ์ธ๋ก ๋๋ก๋ ๋ชจ๋ ์ ์ x์ขํ๋ง๋ค ์๊ณ , ๊ฐ๋ก ๋๋ก๋ ๋ชจ๋ ์ ์ y์ขํ๋ง๋ค ์๋ค. ์ธ์ค์ด๋ ํ์ฌ (0, 0)์ ์๋ค. ๊ทธ๋ฆฌ๊ณ (
www.acmicpc.net
์ฒ์์๋ dp๋ก ํ๋ ค๊ณ ํ๋๋ฐ, ์ฃผ์ด์ง ์ ์ ๋ฒ์๊ฐ ๋๋ฌด ์ปค์ ํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํด์ ๋ฐฐ์ด์ ๋ง๋ค ์ ์์๋ค.
๊ทธ๋์ ์ค๋ซ๋์ ๊ณ ๋ฏผํ๋ค๊ฐ ๋ค๋ฅธ ๋ถ ํ์ด๋ฅผ ์ฐธ๊ณ ํด์ ํ์๋ค.
๊ฐ๋จํ๊ฒ ์๊ฐํ๋ฉด ๋๋ ๊ฑฐ์๋๋ฐ ๋ ์ค๋ฅด์ง๊ฐ ์์์ ์ค๋๊ฑธ๋ ธ๋ฐ
๐ฅ ์กฐ์ฌํ ์
- x์ y๊ฐ ๋งค์ฐ ํฐ ์๋ก ์ฃผ์ด์ง๋ฉด ์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ Integer ๋ฒ์๋ฅผ ์ด๊ณผํ๊ธฐ ๋๋ฌธ์,
๋ณ์ ์๋ฃํ์ ๋ชจ๋ longํ์ ์ผ๋ก ์ค์ ํด์ฃผ์๋ค.
๐ฅ ํ์ด
๋ชฉํ์ง์ ๊น์ง ์ด๋ํ๋ ์ต์ ๊ฑฐ๋ฆฌ ํ๋ณด๋ก๋ ๋ค์ 3๊ฐ์ง๊ฐ ์๋ค.
(๊ทธ๋ฆผ ๊ทธ๋ ค์ ์๊ฐํด๋ณด๋ฉด ์ฝ๊ฒ ์ดํด๊ฐ ๊ฐ ๊ฒ์ด๋ค!!)
1๏ธโฃ ์ง์ ์ด๋๋ง ํ๋ ๊ฒฝ์ฐ: (x+y) * w
2๏ธโฃ ๋๊ฐ์ ์ด๋๋ง ํ๋ ๊ฒฝ์ฐ
- ๋ชฉํ ์ขํ๊ฐ (ํ์, ํ์) ๋๋ (์ง์, ์ง์) ์กฐํฉ์ธ ๊ฒฝ์ฐ: max(x,y) * s
- ๋ชฉํ ์ขํ๊ฐ (ํ์, ์ง์) ๋๋ (์ง์, ํ์) ์กฐํฉ์ธ ๊ฒฝ์ฐ: (max(x,y)-1) * s
3๏ธโฃ ์ง์ + ๋๊ฐ์ ์ด๋ ์กฐํฉ: min(x,y) * s + abs(x-y) * w
์ด ์ค์์ ์ต์๊ฐ์ด ์ ๋ต์ด๋ค.
โ ์ ์ถ ์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String[] input = reader.readLine().split(" ");
long x = Integer.parseInt(input[0]);
long y = Integer.parseInt(input[1]);
long w = Integer.parseInt(input[2]);
long s = Integer.parseInt(input[3]);
long dist1 = (x+y) * w; // ์ง์ ์ด๋ ๊ฑฐ๋ฆฌ
long dist2; // ๋๊ฐ์ ์ด๋ ๊ฑฐ๋ฆฌ
if ( (x+y)%2 == 1){
dist2 = (Math.max(x,y)-1) * s + w;
}else {
dist2 = Math.max(x,y) * s;
}
long dist3 = Math.min(x,y) * s + Math.abs(x-y) * w; // ์ง์ , ๋๊ฐ์ ์กฐํฉ ์ด๋ ๊ฑฐ๋ฆฌ
System.out.println(Math.min(Math.min(dist1, dist2), dist3));
}
}
โ Reference
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > -' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ฌ ๋ ธํธ๋ถ์ java ๊ฐ๋ฐํ๊ฒฝ ์ธํ ํ๊ธฐ (1) | 2024.07.22 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ๊ตญ ๋ํ ์ ๋ฐ ๊ณ ์ฌ (1) | 2023.10.15 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ๋ง๋ค๊ธฐ (0) | 2023.10.04 |
[ํ๋ก๊ทธ๋๋จธ์ค]n^2 ๋ฐฐ์ด ์๋ฅด๊ธฐ (0) | 2023.07.21 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ํ์ ์๊ฐ ์ด๋ (0) | 2023.07.07 |