tjfwownd   2년 전

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
public class ATM_re {
public static void main(String[] args) throws IOException{
// 런타임 에러납니다. 나중에 10문제 풀고 질문 게시판에 올려보세요.
// ATM 문제
// ATM은 오직 한 대
// 사람의 수는 N(1<=N<=1,000)
// 각 사람이 돈을 인출하는데 걸리는 시간P_i(1<=P_i<=1,000)
// 시간의 합의 최솟값 출력
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
int[] P = new int[N];
for(int i=0; i<N; i++){
P[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(P);
int privateDelay = 0;
int totalDelay = 0;
for(int i=0; i<N; i++){
totalDelay += privateDelay + P[i];
privateDelay += P[i];
}
bw.write(totalDelay + "\n");
bw.flush();
bw.close();
}
}

hsykys0728   2년 전

 안녕하세요. 코린이 들렸다 갑니다.

자바 BufferedReader를 검색 해봤습니다.

'.readLine()은 다음 키보드 입력 중 개행하기 전까지의 한 줄을 읽어 문자열로 리턴' 으로 인지했습니다.


 예제와 같이

3 1 4 3 2

 입력과 같은 경우, 

19행의 readLine()은 첫번째 줄인 "5"를 리턴합니다. 이는 정수형으로 변환이 가능합니다.

하지만 23행의 첫번째 .readLine()은 "3"이 아닌 "3 1 4 3 2"를 리턴합니다. 이를 정수형으로 변환하려 해서 생긴 오류가 아닐까 성급하게(?) 의심해봅니다.


전체 문제 풀이를 분석하진 않고, 입력받는 부분만 코드를 변형해봤습니다. (코드 추가)

예제 입력에서는 정답인 출력이 나오는 것을 테스트 했습니다.

부족하지만 조금이라도 도움이 되셨으면 좋겠습니다.

감사합니다..





댓글을 작성하려면 로그인해야 합니다.