본문 바로가기
알고리즘 풀이

[백준]10871번: X보다 작은 수 - java 풀이

by 코디드 2023. 4. 5.

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
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(), " ");
		
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		for(int i=0; i<N; i++) {
			int num = Integer.parseInt(st.nextToken());
			
			if(num<X) {
				bw.write(num+" ");
			}
		}
		br.close();
		bw.flush();
		bw.close();
	}
}

 

수열 A에 있는 정수를 for문 안에서 num에 저장한 후에 바로 X와 비교하기 때문에 굳이 배열에 넣어주지 않아도 된다. 그런데 이전 문제도 그렇고, 이번 문제도 처음에 풀때 저장과 비교를 각각 다른 for문에서 실행해서 배열에 저장하다보니 같은 for문 안에서 처리를 해서 그렇게 할 필요가 없음에도 불구하고 배열을 이용해서 풀었다.

기계적으로 문제를 푸는걸 경계해야겠다는 생각이 들었다. 그래야 미래에 좀더 효율적인 코드를 짤수 있지 않을까 하는 생각이 든다.