카테고리 없음
[백준 풀이_Java] 11399 ATM (feat. countTokens())
happyhelen
2021. 9. 2. 15:57
나의 처음 풀이(틀림)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine()); // 사람의 수
StringTokenizer time = new StringTokenizer(br.readLine()," ");
int[] timeArray = new int[N];
// 배열에 넣기
for(int i=0; i< time.countTokens(); i++) {
timeArray[i] = Integer.parseInt(time.nextToken());
}
// 오름차순
Arrays.sort(timeArray);
int withdrawlTime =0;
int sum =0;
for(int i=0; i<timeArray.length; i++) {
withdrawlTime += timeArray[i];
sum += withdrawlTime;
}
System.out.println(sum);
}
}
** countTokens() 는 모든 토큰의 개수가 아니라 nextToken() 을 호출할 수 있는 횟수, 즉 nextToken() 으로 토큰을 호출하고 남은 토큰의 개수를 리턴한다 (리턴하는 토큰의 개수가 계속 변한다)
따라서 전체 개수를 입력하고자 하는 목적에 맞지 않았고 아래와 같이 수정했다
틀린 부분 고친 풀이(맞음)
입력 받은 N을 그대로 넣었더니 풀이가 통과되었다
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine()); // 사람의 수
StringTokenizer time = new StringTokenizer(br.readLine()," ");
int[] timeArray = new int[N];
// 배열에 넣기
for(int i=0; i<N; i++) {
timeArray[i] = Integer.parseInt(time.nextToken());
}
// 오름차순
Arrays.sort(timeArray);
int withdrawlTime =0;
int sum =0;
for(int i=0; i<timeArray.length; i++) {
withdrawlTime += timeArray[i];
sum += withdrawlTime;
}
System.out.println(sum);
}
}