[백준] 3649 로봇 프로젝트 - Java
문제 자체는 정렬하고 투포인터 방식으로 하나는 배열의 시작부터, 다른 하나는 배열의 끝부분부터 차례대로 확인하면 풀 수 있는 문제인데, EOF처리가 까다롭다.
EOF처리를 가장 간단하게 할 수 있는 방법 하나를 소개하려 한다.
EOF처리를 해 주지 않은 상태로 코드를 집어넣으면 채점기에서 EOF에러를 뱉는다.
자바에서 에러를 처리할 때 try catch문법을 사용하는데, EOF역시 에러 중 하나이기에 try catch문에서 잡힌다.
대부분은 while(br.readLine() != null) 이렇게 처리할텐데, 지금처럼 입력이 한 줄 단위로 주어지지 않을 경우에는 try catch로 처리하는 방법도 시도해 보자.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
try{
while(true){
int X = Integer.parseInt(br.readLine());
int N = Integer.parseInt(br.readLine());
X = X * 10000000;
int arr[] = new int[N];
for(int i=0; i<N; i++){
arr[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(arr);
int L = 0;
int R = N-1;
while(L < R){
int sum = arr[L] + arr[R];
if(sum == X){
break;
}
if(sum < X){
L++;
}
if(sum > X){
R--;
}
}
if(L >= R){
System.out.println("danger");
}else{
System.out.println("yes" + " " + arr[L] + " " + arr[R]);
}
}
}catch(Exception e){
System.out.println();
}
}
}
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 6166 문자열 암호화 - Java (0) | 2022.06.22 |
---|---|
[백준] 1068 트리 - Java (0) | 2022.06.22 |
[백준] 5567 결혼식 - Java (0) | 2022.05.28 |
[백준] 2644 촌수계산 - Java (0) | 2022.05.28 |
[백준] 11725 트리의 부모 찾기 - Java (0) | 2022.05.28 |
댓글
이 글 공유하기
다른 글
-
[백준] 6166 문자열 암호화 - Java
[백준] 6166 문자열 암호화 - Java
2022.06.22 -
[백준] 1068 트리 - Java
[백준] 1068 트리 - Java
2022.06.22 -
[백준] 5567 결혼식 - Java
[백준] 5567 결혼식 - Java
2022.05.28 -
[백준] 2644 촌수계산 - Java
[백준] 2644 촌수계산 - Java
2022.05.28