[Java][BOJ] X보다 작은 수

Ga02·2023년 9월 2일
0

BOJ

목록 보기
44/62

문제

정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)

둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.

출력

X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.

예제입력1

10 5
1 10 4 9 2 3 8 5 7 6

예제출력1

1 4 2 3

My Solution

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));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st1 = new StringTokenizer(br.readLine());
		StringTokenizer st2 = new StringTokenizer(br.readLine());
		int N = Integer.parseInt(st1.nextToken());
		int X = Integer.parseInt(st1.nextToken());
		int[] arr = new int[N];
		for(int i=0; i<arr.length; i++) {
			arr[i] = Integer.parseInt(st2.nextToken());
		}
		for(int i : arr) {
			if(i<X) sb.append(i).append(" ");
		}
		System.out.println(sb);
	}

}

👀 Comment

어렵진 않았지만, 프로그래머스였다면 마지막 띄어쓰기가 있다면 정답이 아니었을텐데 백준은 좀 더 봐주는(?) 느낌.. 마지막 띄어쓰기를 없애려면 String.join(arr, “ “)을 사용하면 됐을 것 같다는 생각이 들지만 이 녀석을 사용하기 위해서는 배열이 필요하단 말이지..

다른 사람의 코드

sb.append(i + " ");
System.out.print(sb.toString(),trim());

내가 고민했던 부분을 해결한 방법이다. sb에 담긴 내용을 String으로 변환하고 trim() 함수를 사용하여 마지막 문자 제거하기! trim() 함수는 마지막 공백을 없애준다.

profile
IT꿈나무 댓츠미

0개의 댓글