728x90
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int N = Integer.parseInt(st.nextToken());
int X = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine()," ");
StringBuilder sb = new StringBuilder();
for(int i=0;i<N;i++){
int num = Integer.parseInt(st.nextToken());
if(num<X){
sb.append(num).append(' ');
}
}
System.out.println(sb);
}
}
[틀린 코드]
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int X = Integer.parseInt(br.readLine());
String[] A = br.readLine().split(" ");
StringBuilder sb = new StringBuilder();
for(int i=0;i<N;i++){
int num = Integer.parseInt(A[i]);
if(num < X){
sb.append(num).append(' ');
}
}
- 입력 형식 문제 : 입력 형식이 올바르지 않을 수 있음. (N에 입력된 숫자보다 A 배열의 길이가 짧거나 길 경우, A 배열에 정수가 아닌 값이 포함되어 있을 경우, A[i]를 Integer.parseInt로 변환하려고 할 때, 해당 값이 정수로 변환할 수 없는 형식일 경우)
- 불필요한 공백 : br.readLine().split(" ")는 공백(" ")을 기준으로 나누는데, 입력 데이터에 추가 공백이 있으면 빈 문자열이 배열에 포함될 수 있음.
- 입력과 조건의 불일치 : N의 값이 입력된 배열 A의 길이와 일치하지 않는 경우
[고찰]
BufferedReader로 입력 받은 문자열 분리를 위해 StringTokenizer 사용해야함. StringTokenizer 사용법 제대로 숙지하기
728x90
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
[백준/10813] 공 바꾸기 (Java) (0) | 2024.12.24 |
---|---|
[백준/10810] 공 넣기 (Java) (0) | 2024.12.24 |
[백준/2588] (0) | 2024.12.16 |
[백준/2178] 미로 탐색하기 (BFS) (0) | 2024.09.19 |
[백준/11724] 연결 요소의 개수(DFS) (1) | 2024.09.12 |