접근
https://www.acmicpc.net/problem/9881
처음에는 무언가 좀더 효율적인 방법이 있을 줄 알았는데, 문제의 등급을 보고 그냥 브루트포스 알고리즘으로 풀었더니 그냥 풀게 되었습니다.
즉, 주어진 구간이 1~18, 2~19, 3~20, ... , 93~100 이라고 가정하고 계산한 값의 최소값을 구하면 됩니다.
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.*;
public class Main {
static int N;
static int[] height;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
height = new int[N];
for (int i = 0; i < N; i++) {
height[i] = Integer.parseInt(br.readLine());
}
br.close();
int tmp, res;
res = Integer.MAX_VALUE;
for (int i = 1; i < 100 - 17; i++) {
tmp = 0;
for (int j = 0; j < N; j++) {
tmp += compare(height[j], i);
}
res = Math.min(res, tmp);
}
System.out.println(res);
}
static int compare(int n, int s) {
if (s <= n && n <= s + 17) {
return 0;
} else if (n < s) {
return (s - n) * (s - n);
} else {
return (n - (s + 17)) * (n - (s + 17));
}
}
}
더 생각해 볼 것?
...
코드나 내용 관련 조언, 부족한 점 및 질문 언제든 환영합니다!
반응형
'코딩 > 백준 (JAVA)' 카테고리의 다른 글
백준 14529: Where's Bessie? (Java) (0) | 2022.08.06 |
---|---|
백준 10875번: 뱀 (Java) (0) | 2022.07.25 |
백준 5901번: Relocation (Java) (0) | 2022.07.20 |
백준 9874번: Wormholes (Java) (0) | 2022.07.16 |
백준 5827번: What's Up With Gravity (Java) (0) | 2022.07.15 |
최근댓글