-
[KOITP] 지은이가 지은 집자료구조 및 알고리즘/문제풀이 2016. 12. 19. 09:35
출 처 : http://koitp.org/problem/ICPC_2012NWERC_HOUSE/read/
시간 제한 메모리 제한 제출 횟수 정답 횟수 (비율) 정답자 수 2.0 초 512 MB 3611 433 (12%) 325 < Comment >
문제를 전에 잠깐 본 적이 있기도 한 터라 어렵지 않게 풀 수 있었습니다. 다만 N의 범위가 0 부터인데, 이 경우에도 danger를 출력해주어야 합니다. 이 부분에 대한 처리를 안 했던 터라 Exception 이 발생했었습니다.
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Arrays; public class Jienii { public static int cm = 10000000; public static int N = 0; public static int arr[] = null; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int xlen = Integer.parseInt(br.readLine()); int x = cm * xlen; N = Integer.parseInt(br.readLine()); arr = new int[N]; for (int i = 0 ; i < N ; i++) { arr[i] = Integer.parseInt(br.readLine()); } if (N == 0) { bw.write("danger"); bw.flush(); } else { Arrays.sort(arr); int head = 0; int tail = arr.length - 1; while (head != tail) { int nowSum = arr[head] + arr[tail]; if (nowSum == x) { bw.write("yes " + arr[head] + " " + arr[tail]); bw.flush(); break; } else if (nowSum < x) { head++; } else if (nowSum > x) { tail--; } } if (head == tail) { bw.write("danger"); bw.flush(); } } bw.close(); } }