문제 

https://www.acmicpc.net/problem/10871

 

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

 

첫 번째 풀이 

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws Exception{
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		StringTokenizer st = new StringTokenizer(br.readLine()," ");
		int n = Integer.parseInt(st.nextToken());
		int x = Integer.parseInt(st.nextToken());
		
		int[] numbers = new int[n];
		List<Integer> smallNumbers = new ArrayList<>();
		
		StringTokenizer st2 = new StringTokenizer(br.readLine()," ");
		
		for(int i = 0 ; i < n ; i ++) {	
				numbers[i]=(Integer.parseInt(st2.nextToken()));				
				if ( numbers[i] < x  ) {
					smallNumbers.add(numbers[i]);
				}	
		};
		
			bw.write(String.valueOf(smallNumbers).replace(",","").replace("[","").replace("]",""));
			bw.close();
			br.close();
                
    }
}

 

 

두 번 째 풀이 : 첫 번째 풀면서 뭔가 지저분 함... 다른 사람들 코딩 참고하여 수정

출력할 때 배열에 안 넣고 StringBuffer 이용

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		StringTokenizer st = new StringTokenizer(br.readLine()," ");
		int n = Integer.parseInt(st.nextToken());
		int x = Integer.parseInt(st.nextToken());
		
		int[] numbers = new int[n];
		StringBuffer sb = new StringBuffer();
		StringTokenizer st2 = new StringTokenizer(br.readLine()," ");
        
		for(int i = 0 ; i < n ; i ++) {	
              numbers[i]=(Integer.parseInt(st2.nextToken()));				
              if ( numbers[i] < x  ) {
                  sb.append(numbers[i]).append(" ");
              }	
		};
		
			bw.write(String.valueOf(sb));
			bw.close();
			br.close();

    }
}

'개인공부 > 백준코딩연습' 카테고리의 다른 글

[1차원 배열] - 최댓값  (0) 2024.08.12
[1차원 배열] - 최소, 최대  (0) 2024.08.12
[1차원 배열] - 개수 세기  (0) 2024.08.12
[반복문] - A+B - 4  (1) 2024.08.12
[반복문] - A+B - 5  (0) 2024.08.12

+ Recent posts