Tags
- Brute Force Algorithm
- ๋ฐฑํธ๋ํน
- ๊ตฌํ
- PGM
- queue
- greedy
- CodingTest
- ์ํ
- Dynamic Programming
- BFS
- stack
- dfs
- ๊ต์ฌ
- Java
- ์๋ฎฌ๋ ์ด์
- ๋ฌธ์์ด
- ์ ์๋ก
- SpringBoot
- ์๋ฃ๊ตฌ์กฐ
- LV2
- BOJ
- ๋๋น ์ฐ์ ํ์
- ๊ทธ๋ํ ์ด๋ก
- ๊น์ด ์ฐ์ ํ์
- ๊ทธ๋ํ ํ์
- Study
- DP
- sort
- Python
- ์ ๋ ฌ
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_1166 : ์ ๋ฌผ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ํ ๋ณ์ ๊ธธ์ด๊ฐ A์ธ N๊ฐ์ ์ ์ฌ๊ฐํ ์์๊ฐ ์๋ค.
- L * W * H ํฌ๊ธฐ์ ์์์ ์์๋ฅผ ๋ชจ๋ ๋ฃ์ด์ผ ํ ๋, A์ ์ต๋๊ฐ์ ์ถ๋ ฅํ๋ค.
- ํน์ ๊ฐ์ ์ฐพ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ด๋ถํ์์ ์ฌ์ฉํ๋ค.
- ๋ฌธ์ ์กฐ๊ฑด์ ์ ๋/์๋ ์ค์ฐจ๋ 10^-9 ๊น์ง ํ์ฉ์ด๋ฏ๋ก ์ถฉ๋ถํ ๋ฐ๋ณตํ์๋ก ์ด๋ถํ์์ ์งํํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int l = sc.nextInt();
int w = sc.nextInt();
int h = sc.nextInt();
double start = 0, end = Math.max(l, Math.max(w,h));
for (int i = 0; i < 10000; i++) {
double mid = (start + end) / 2;
if ((long)(l/mid) * (long)(w/mid) * (long)(h/mid) >= n)
start = mid;
else
end = mid;
}
System.out.println(end);
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- n, l, w, h๋ ์ต๋ 10์ต์ด๋ฏ๋ก intํ์ผ๋ก ์ ์ธํ๋ค.
- ์ด๋ถํ์์ ์งํํ๊ธฐ ์ํด ์ฒ์ ์ธ๋ฑ์ค์ ๋ ์ธ๋ฑ์ค๋ฅผ ์ง์ ํ๋ค.
- ์์์ ๊น์ง ๊ณ์ฐ๋์ด์ผ ํ๋ฏ๋ก doubleํ์ผ๋ก ๊ณ์ฐํ๋ค.
- start์ end์ ์ฐจ์ด๊ฐ 10^-9๋ณด๋ค ๋ ์์์ง๋๋ก ์ถฉ๋ถํ ๋ฐ๋ณตํ๋ค.
- start์ end์ ์ค๊ฐ๊ฐ์ A๋ก ๋๊ณ , l * w * h ํฌ๊ธฐ์ ์์์ ๋ค์ด๊ฐ๋์ง ํ์ธํ๋ค.
- ๋ค์ด๊ฐ๋ค๋ฉด start๋ mid, ๋ค์ด๊ฐ์ง ์๋๋ค๋ฉด end๋ฅผ mid๋ก ๋ฐ๊พธ๊ณ ๋ค์ ๋ฐ๋ณตํ๋ค.
- startํน์ end๋ฅผ ์ถ๋ ฅํ๋ค.
๐ธ end ๐ธ
- ์คํ์ ์ ์ง์ธ ์ด์ ๋ ์ค์ฐจ๋ฒ์ ์์์ ๋ต์ ๋์ถํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ธ ๊ฒ ๊ฐ๋ค.
- ์ด์ ํฌ์คํ
๊ณผ ๊ฐ์ด ์ด๋ถํ์์ ํ๋ผ๋ฉํธ๋ฆญ ์์น ๋ฌธ์ ์ธ ๊ฒ ๊ฐ๋ค.
- ์ด์งํ์๊ณผ ํ๋ผ๋ฉํธ๋ฆญ ์์น๋ฅผ ์์ ํ ๊ฐ๊ฒ ๋ณด์์ง๋ง, ํฌ์คํ ์ ์ฐพ์๋ณด๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์๋ ์ฐพ๊ณ ์ํ๋ ๊ฐ์์ ์ฐจ์ด๊ฐ ๋๋ ๊ฒ ๊ฐ๋ค.
- ์ด์งํ์ : ์ ๋ ฌ๋ ์ผ๋ จ์ ๊ฐ์์ ์ํ๋ ๊ฐ์ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ
- ํ๋ผ๋ฉํธ๋ฆญ ์์น : ์ผ๋ จ์ ๊ฐ๋ค์ด ์๋๋ผ ์ฃผ์ด์ง ๋ฒ์ ๋ด์์ ์ํ๋ ๊ฐ ๋๋ ์ํ๋ ์กฐ๊ฑด์ ๊ฐ์ฅ ์ผ์นํ๋ ๊ฐ์ ์ฐพ์๋ด๋ ์๊ณ ๋ฆฌ์ฆ
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_1213 : ํฐ๋ฆฐ๋๋กฌ ๋ง๋ค๊ธฐ (0) | 2023.01.10 |
---|---|
BOJ_1183 : ์ฝ์ (0) | 2023.01.09 |
BOJ_1072 : ๊ฒ์ (0) | 2023.01.04 |
BOJ_1063 : ํน (0) | 2023.01.04 |
BOJ_1057 : ํ ๋๋จผํธ (0) | 2023.01.01 |