백준, 정렬)ATM(정답)
ATM 문제
실수
저번 코드에서 내가 NumberFormat 오류가 뜬이유는
for (String input : inputs) {
int x = Integer.parseInt(input);
y.add(x);
}
해당 부분 때문이다.
입력 예제에서는
5
3 1 4 3 2
이렇게 첫 정수를 받고
그이후 2번째줄 입력 받을때 숫자와 공백이 같은 라인에 존재한다.
즉 for문으로 값을 하나씩 받아서 배열안에 넣은 수들이 아니라
하나의 string문으로 공백과 함께 입력한 것이라고 추측하고 한번 시도를 해보았다.
String[] inputs = br.readLine().split(" ");
for (String input : inputs) {
int x = Integer.parseInt(input);
y.add(x);
}
String배열안에 입력 값을 받고 해당 배열을 값들을 구분할때 “ “ 즉 공백으로 구분을하여 배열안에 저장 하였다.
이후 string배열 안에 있는 값들을 integer로 int x에 입력 받은후 list변수중 하나인 y에다가 값을 넣어주니 해결 되었다.
전체 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
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 sum = 0;
int answer = 0;
List<Integer> y = new ArrayList<>();
List<Integer> sums = new ArrayList<>();
String[] inputs = br.readLine().split(" ");
for (String input : inputs) {
int x = Integer.parseInt(input);
y.add(x);
}
Collections.sort(y);
for(int i = 0; i < n; i++) {
sum += y.get(i);
sums.add(sum);
}
for(int enter : sums){
answer += enter;
}
System.out.println(answer);
bw.flush();
bw.close();
br.close();
}
}
댓글남기기