Tags
- BOJ
- ๋ฌธ์์ด
- ๊ตฌํ
- ๊ต์ฌ
- SpringBoot
- queue
- ์ํ
- ๊น์ด ์ฐ์ ํ์
- ์ ๋ ฌ
- Brute Force Algorithm
- Study
- PGM
- Python
- CodingTest
- dfs
- ์๋ฃ๊ตฌ์กฐ
- Dynamic Programming
- ๋ฐฑํธ๋ํน
- ์ ์๋ก
- greedy
- DP
- BFS
- sort
- ์๋ฎฌ๋ ์ด์
- ๊ทธ๋ํ ์ด๋ก
- Java
- ๊ทธ๋ํ ํ์
- ๋๋น ์ฐ์ ํ์
- LV2
- stack
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_1064 : ํํ์ฌ๋ณํ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ธ ์ ์ ์ขํ๊ฐ ์ฃผ์ด์ง๋ฉด, ๋ง๋ค ์ ์๋ ํํ์ฌ๋ณํ ์ค ๊ฐ์ฅ ํฐ ๋๋น์์ ๊ฐ์ฅ ์์ ๋๋น๋ฅผ ๋บ ๊ฐ์ ์ถ๋ ฅํ๋ค.
- ์ธ ์ ์ผ๋ก ๊ทธ๋ฆด ์ ์๋ ํํ์ฌ๋ณํ์ 3๊ฐ์ง๊ฐ ๋์ค๋๋ฐ, ๊ทธ ์ค 2๊ฐ์ง๋ ๊ฐ์ ์ ์๋ค.
- ํํ์ฌ๋ณํ์ ๋ง๋ค ์ ์๋ ๊ฒฝ์ฐ๋ ์ธ ์ ์ด ํ ์ง์ ์์ ์กด์ฌํ ๋์ด๋ค.
- ๋ ์ ์ ๊ธฐ์ธ๊ธฐ (x์ฆ๊ฐ๋/y์ฆ๊ฐ๋)์ ํ์ธํด์, ๊ธฐ์ธ๊ธฐ๊ฐ ๊ฐ์ผ๋ฉด(ํ ์ ๋ถ ์์ ์กด์ฌํ๋ฉด) -1.0 ์ ์ถ๋ ฅํ๋ค.
- ๊ทธ๋ฆด ์ ์๋ ํํ์ฌ๋ณํ์ ๋๋ ๋ ์ธ ์ ์ผ๋ก ๋์ค๋ ์ ๋ถ์ ๋ ๋ณ์ผ๋ก ํ๋ค.
- ์ธ ์ ์ผ๋ก ๋์ค๋ ์ธ ์ ๋ถ์ 2๊ฐ ๋ฝ์ ๋ง๋ค ์ ์๋ ์กฐํฉ์ ๋น๊ตํ๋ค.
- ์กฐํฉ์ ์ต๋๊ฐ์ max, ์ต์๊ฐ์ min์ผ๋ก ์ ์ฅํ๋ค.
- max*2 ๋ ๋ง๋ค ์ ์๋ ํํ์ฌ๋ณํ์ ์ต๋ ๋๋ ์ด๊ณ , min*2 ๋ ๋ง๋ค ์ ์๋ ํํ์ฌ๋ณํ์ ์ต์ ๋๋ ์ด๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int arr[] = new int[6];
for (int i = 0; i < 6; i++)
arr[i] = Integer.parseInt(st.nextToken());
double abx = arr[0]-arr[2];
double aby = arr[1]-arr[3];
double acx = arr[0]-arr[4];
double acy = arr[1]-arr[5];
double bcx = arr[2]-arr[4];
double bcy = arr[3]-arr[5];
// ๊ธฐ์ธ๊ธฐ๊ฐ ๊ฐ์ผ๋ฉด ๊ฐ์ ์ง์ ์ ์กด์ฌํ๋ ์
// ๊ธฐ์ธ๊ธฐ : x์ฆ๊ฐ๋/y์ฆ๊ฐ๋
// abx / aby == acx / acy (0์ ๋๋๋ฉด ์ค๋ฅ๊ฐ ์๊ธฐ๋ฏ๋ก ์นํ)
// abx * acy == acx * aby
if(abx*acy == aby*acx){
System.out.println(-1.0);
System.exit(0);
}
double ab_length = Math.sqrt(Math.pow(abx,2)+Math.pow(aby,2));
double ac_length = Math.sqrt(Math.pow(acx,2)+Math.pow(acy,2));
double bc_length = Math.sqrt(Math.pow(bcx,2)+Math.pow(bcy,2));
double max = ab_length + ac_length;
double min = ab_length + ac_length;
if (ac_length + bc_length > max) max = ac_length + bc_length;
if (bc_length + ab_length > max) max = bc_length + ab_length;
if (ac_length + bc_length < min) min = ac_length + bc_length;
if (bc_length + ab_length < min) min = bc_length + ab_length;
System.out.println((max-min)*2);
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์ธ ์ ์ ์ขํ๋ฅผ ์ ๋ ฅ๋ฐ๊ณ , ๋ฐฐ์ด arr์ ์ ์ฅํ๋ค.
- ๊ฐ ์ ๋ผ๋ฆฌ์ x์ขํ ์ฐจ์ด์ y์ขํ ์ฐจ์ด๋ฅผ ๊ณ์ฐํด์ ์ ์ฅํ๋ค. ๋นผ๊ธฐ์ ์์๋ ์๊ด ์๋ค.
- ์ธ ์ ์ฌ์ด์ ๋ ์ง์ ์ ๊ธฐ์ธ๊ธฐ๋ฅผ ๋น๊ตํด ๊ฐ๋ค๋ฉด ํ ์ง์ ์์ ์๋ ์ธ ์ ์ด ๋๋ฏ๋ก -1.0์ ์ถ๋ ฅํ๊ณ ์ข
๋ฃํ๋ค.
- ๊ธฐ์ธ๊ธฐ๋ x์ฆ๊ฐ๋/y์ฆ๊ฐ๋์ธ๋ฐ ์ฝ๋์์ 0์ผ๋ก ๋๋๋ฉด ์ค๋ฅ๊ฐ ๋๋ฏ๋ก, ๊ณฑํ๊ธฐ ๊ณต์์ผ๋ก ์นํํ๋ค.
- ์ธ ์ง์ ์ ๊ธธ์ด๋ฅผ ๊ตฌํด์ max์ min์ ์ฐพ๋๋ค.
- max-min์ 2๋ฅผ ๊ณฑํด ์ถ๋ ฅํ๋ค.
๐ธ end ๐ธ
- ํํ์ฌ๋ณํ์ ๊ทธ๋ฆฌ๋ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ด ์ดํด๊ฐ ์๋์ ๊ทธ๋ฆผ์ผ๋ก ๊ทธ๋ ค๋ณธ ๋ฌธ์ ์ด๋ค. ๊ทธ๋ ค๋ณด๋ ํ์คํ ๋ฐ๋ก ์ดํด๊ฐ ๋์๋ค.
- ์ฒ์์ ์ ๊ทผ์ด ์ด๋ ค์์ ์ํ์ ์๋ฆฌ๊ฐ ๋ง์ด ๋ค์ด๊ฐ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๊ณ ํ์ด ํฌ์คํ ๋ ์ฐธ๊ณ ํ๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_12891 : DNA ๋น๋ฐ๋ฒํธ (0) | 2022.11.03 |
---|---|
BOJ_1120 : ๋ฌธ์์ด (0) | 2022.11.02 |
BOJ_1059 : ์ข์ ๊ตฌ๊ฐ (0) | 2022.10.30 |
BOJ_1051 : ์ซ์ ์ ์ฌ๊ฐํ (0) | 2022.10.27 |
BOJ_2003 : ์๋ค์ ํฉ 2 (0) | 2022.10.26 |