Baekjoon

[Java/Algorithm] 백준 10871번: X보다 작은 수

dev_haha 2023. 11. 12. 21:57

백준 10871번

for문과 if문으로 간단히 풀 수 있는 문제이다.

배열 카테고리라서 배열을 사용하도록 유도된 것 같지만

배열을 사용할 수도 있고 사용하지 않을 수도 있다.

아래에 성능 비교도 있다.

1. 배열 사용 + StringBuilder

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

 

2. 배열 없이 + StringBuilder

import java.io.*;
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());
		StringBuilder sb = new StringBuilder();
		
		int N = Integer.parseInt(st.nextToken());
		int X = Integer.parseInt(st.nextToken());
		
		
		st = new StringTokenizer(br.readLine());
		
		for (int i = 0; i < N; i++)
		{
			int value = Integer.parseInt(st.nextToken());
			if(value < X)
				sb.append(value).append(" ");
		}
		
		System.out.println(sb);
		
		br.close();
	}
	
}

이렇게 하면 좀 더 간단한듯 하다.


3. 성능 비교

비슷하당