사용 언어 : JAVA
결과
- 메모리 : 20,392 kb
- 실행 시간 : 131 ms
- 코드 길이 : 2,241
풀이
fail
package level_1;
import java.util.*;
public class java_2063_1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str_num = sc.next();
int num = Integer.parseInt(str_num);
String str = sc.nextLine();
String[] str_arr = str.split(" ");
int[] arr = new int[str_arr.length];
for (int i = 0; i < str_arr.length; i++) {
arr[i] = Integer.parseInt(str_arr[i]);
}
Arrays.sort(arr);
int n = arr.length / 2;
System.out.println(arr[n]);
}
}
pass
package level_1;
import java.util.*;
public class java_2063_2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
sc.nextLine(); // Consume the newline character
String str = sc.nextLine();
String[] str_arr = str.split(" ");
int[] arr = new int[str_arr.length];
for (int i = 0; i < str_arr.length; i++) {
arr[i] = Integer.parseInt(str_arr[i]);
}
Arrays.sort(arr);
int n = arr.length / 2;
System.out.println(arr[n]);
}
}
주석
- 배열에 집어넣어서 배열을 오른차순으로 정렬한 뒤 가운데 값을 index로 찾아 가져와주었다. 물론 일일이 어느쪽이 큰지 비교해서 제일 큰 수와 작은 수를 삭제해서 그걸 여러번 반복할 수도 있겠으나 그러면 코드가 엄청 길어질 것 같아서 다른 방면으로 생각해보고 구현했다.
- 그런데 fail 코드 실행 시 콘솔에 아래와 같은 에러가 자꾸 출력되었었다. 혹시나 num 값이 int로 제대로 받아와지지 않은 줄 알고 변환하고 별 짓을 다했지만 해결 되지 않았다.
Exception in thread "main" java.lang.NumberFormatException: For input string: "" at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) at java.base/java.lang.Integer.parseInt(Integer.java:678) at java.base/java.lang.Integer.parseInt(Integer.java:786) at level_1.java_2063_1.main(java_2063_1.java:20)
- 서치를 해보니 Scanner가 아래 라인을 제대로 못 읽어와서 그런거라고. nextInt 아랫줄에 nextLine을 추가해주면 된다고 해서 추가해주었더니 pass.
- nextLine() : '\n'을 포함한 한 라인을 읽음 -> '\n'을 버린 나머지 값을 리턴 ('\n'만 있는 경우 리턴값이 없다!)
'CodingTest > SW Expert Academy' 카테고리의 다른 글
[SW Expert Academy] 2070. 큰 놈, 작은 놈, 같은 놈 (0) | 2024.01.17 |
---|---|
[SW Expert Academy] 2068. 최대수 구하기 (0) | 2024.01.17 |
[SW Expert Academy] 2058. 자릿수 더하기 (0) | 2024.01.16 |
[SW Expert Academy] 2056. 연월일 달력 (0) | 2024.01.16 |
[SW Expert Academy] 2043. 서랍의 비밀번호 (0) | 2024.01.15 |