Tags
- ๋๋น ์ฐ์ ํ์
- BOJ
- greedy
- queue
- ์๋ฎฌ๋ ์ด์
- dfs
- DP
- ๊ตฌํ
- ๋ฐฑํธ๋ํน
- BFS
- ๊ต์ฌ
- ๋ฌธ์์ด
- sort
- LV2
- stack
- Study
- Java
- SpringBoot
- ๊น์ด ์ฐ์ ํ์
- ๊ทธ๋ํ ํ์
- ์ํ
- ์ ๋ ฌ
- Brute Force Algorithm
- ์๋ฃ๊ตฌ์กฐ
- ์ ์๋ก
- Python
- CodingTest
- ๊ทธ๋ํ ์ด๋ก
- Dynamic Programming
- PGM
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_17093 : Total Circle ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ํ ์ ์ ์ค์ ์ผ๋ก ์ฌ๋ฌ ์ขํ๋ฅผ ์ง๋๋ ์์ ํ์๋ชจ์๊น์ง ์๊ฐํ๋ฉด ๋ฌด์ํ ๋ง๋ค.
- ๋ฌธ์ ์กฐ๊ฑด์์ ์ต์ํฌ๊ธฐ์ ์์ ์ต๋ ๋ฐ์ง๋ฆ์ด๋ผ ํ์ผ๋ฏ๋ก, ์ค์ ๊ณผ ๊ฐ์ฅ ๋จผ ์ขํ๊น์ง์ ๊ฑฐ๋ฆฌ๋ค.
- ๋ชจ๋ ์ค์ ์์ ๊ตฌํ ๋ฐ์ง๋ฆ์ ์ต๋๊ฐ๋ค ์ค์์ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ถ๋ ฅํ๋ค.
- ์ต๋๊ฐ ์ฐพ๊ธฐ๊ฐ 2๋ฒ์๋ ์
์ด๊ณ , for๋ฌธ์ด ์ค์ฒฉ๋์ด ํ ๋ฒ์ฉ ๋น๊ตํ๋ ํํ์ด๋ค.
- n, m์ ์ต๋๊ฐ์ 1000์ด๋ฏ๋ก O(n^2)์์ ์ต๋ ๊ณ์ฐ๋์ 1,000,000 (๋ฐฑ๋ง)์ผ๋ก 1์ด ๋ฏธ๋ง์ด๋ค.
๋ฐ๋ผ์ ์ ํ์๊ฐ 1์ด๋ฅผ ๋์ง ์๋๋ค.
- n, m์ ์ต๋๊ฐ์ 1000์ด๋ฏ๋ก O(n^2)์์ ์ต๋ ๊ณ์ฐ๋์ 1,000,000 (๋ฐฑ๋ง)์ผ๋ก 1์ด ๋ฏธ๋ง์ด๋ค.
- x, y์ ํฌ๊ธฐ๊ฐ 10^7 == 10,000,000(์ฒ๋ง) ๊น์ง ์ด๊ณ , ๋ฐ์ง๋ฆ ๊ณ์ฐ์์ ์ ๊ณฑํ๊ฒ ๋๋ค.
- ์ ๊ณฑํ๋ฉด 100,000,000,000,000(๋ฐฑ๊ฒฝ) ์ด๋ฏ๋ก int๋ฅผ ์ด๊ณผํ๋ค...long์ ์ฌ์ฉํด์ผํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
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 n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
ArrayList<Pair> nl = new ArrayList<>();
ArrayList<Pair> ml = new ArrayList<>();
for (int i = 0; i < n; i++) {
st = new StringTokenizer(br.readLine());
nl.add(new Pair(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken())));
}
for (int i = 0; i < m; i++) {
st = new StringTokenizer(br.readLine());
ml.add(new Pair(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken())));
}
long answer = 0;
for (int i = 0; i < m; i++){
long rr = 0;
for (int j = 0; j < n; j++){
long temp = (long)(Math.pow(nl.get(j).x - ml.get(i).x, 2) + Math.pow(nl.get(j).y - ml.get(i).y, 2));
if (temp > rr) {
rr = temp;
}
}
if (rr > answer){
answer = rr;
}
}
System.out.println(answer);
}
}
class Pair {
int x,y;
Pair(int x, int y){
this.x = x;
this.y = y;
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์ขํ ๊ณ์ฐ์ ํด์ผํ๋ฏ๋ก, Pair๋ผ๋ ํด๋์ค๋ฅผ ๋ง๋ค์ด์ x, y๋ฅผ ํจ๊ป ์ ์ฅํ๋ค.
- ArrayLIst<> ์ ์ธ์๋ก ๋ฃ์ผ๋ฉฐ, ์ฌ์ฉํ ์๋ฃํ์ Pair๋ก ์ง์ ํ๋ค.
- ์ค์ ๊ณผ ์ขํ๋ค์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ค.
- [๋ฐ์ง๋ฆ^2 == (x-x`)^2 + (y-y`)^2 ] ๊ณต์์ ์ฌ์ฉํ๋ค. (์ ๊ณฑ ์ฌ์ฉ -> longํ ํ์)
- ๋์จ ๋ฐ์ง๋ฆ์ ์ ๊ณฑ๊ฐ์ค ์ต๋๊ฐ์ rr์ ์ ์ฅํ๋ค.
- ๋์ค๋ rr์ค ์ต๋๊ฐ์ answer์ ์ ์ฅํ๊ณ ์ต์ข ์ถ๋ ฅํ๋ค.
๐ธ end ๐ธ
- ๊ทธ๋ ค์ง๋ ์์ด ์ ํํ ์์ธ ์ค ์๊ณ ์๋ชป ์ ๊ทผํด์ ๋ง์ด ํ๋ ธ์๋ค.
- ํ์ํ์ผ๋ก ๊ทธ๋ ค์ง๋ค๊ณ ์๊ฐ์ด ๊ฐ๋, ์ ์ต์๋์ด์ ์ต๋ ๋ฐ์ง๋ฆ์ธ์ง ์ ์ ์์๋ค.
- ํ์ด๊ฐ ์ ์ ๋ฌธ์ ์ฌ์ ๋ ๋ด ์ค๋ฅ๋ฅผ ์์์น๋ฆฌ๊ธฐ ์ด๋ ค์ ์ง๋ง, ํ๊ณ ๋๋ ๊ฐ๋จํ๊ณ ๋ธ๋ก ์ฆ 1๋ฌธ์ ์์ง๋ง ๋ง์ ๊ณต๋ถ๊ฐ ๋ ๊ฒ ๊ฐ๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_1402 : ์๋ฌด๋๋์ด๋ฌธ์ ๋A๋ฒ๋์ด๋์ธ๊ฒ๊ฐ๋ค (0) | 2022.10.19 |
---|---|
BOJ_9656 : ๋ ๊ฒ์ 2 (0) | 2022.10.19 |
BOJ_25205 : ๊ฒฝ๋ก๋นํํฌ 2077 (0) | 2022.10.19 |
BOJ_2217 : ๋กํ (0) | 2022.10.11 |
BOJ_2714 : ๋ฌธ์๋ฅผ ๋ฐ์ ์นํ์ด (0) | 2022.10.10 |