(https://www.acmicpc.net/problem/2012)
백준의 문제를 좀 풀다보면 느껴지는 찝찝함과 쎄함이 있다
1. 시간제한이 1초가 아닐 때!
2. 값의 범위가 제법 클 때!
→ 사실 아직 시간복잡도의 개념과 값의 범위에대한 고려를 잘 못해서 찜찜함을 느끼는 것 같다ㅎㅎ
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
int[] predict = new int[N];
long result = 0;
for(int i=0;i<N;i++) {
predict[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(predict);
for(int i=0;i<N;i++) {
result += Math.abs(predict[i]-(i+1));
}
bw.write(result+"");
bw.flush();
bw.close();
}
}
문제를 읽고, 필기하고, 코드를 적고, 제출하고, 스터디 깃에 올리기까지 총 30분도 안 걸린 문제였다. 이정도 수준의 그리디라면 easy~해졌다는거죠 😎😎