알고리즘

[백준] 10871번: X보다 작은 수 (java, python)

홍비 2022. 7. 14. 19:09

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

 

10871번: X보다 작은 수

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

www.acmicpc.net


🗒 풀이

java

1) Scanner 사용

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int X = sc.nextInt();

        for (int i = 0; i < N; i++) {
            int val = sc.nextInt();
            if (val < X) {
                System.out.print(val + " ");
            }
        }
    }
}

받은 값들을 배열로 저장할 필요가 없다고 생각되어, 입력 받은 즉시 X의 값과 비교하여 작은 것들을 즉시 출력하도록 하였다.


2) BufferedReader 사용

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(), " ");
        st.nextToken();
        int X = Integer.parseInt(st.nextToken());

        st = new StringTokenizer(br.readLine(), " ");
        while (st.hasMoreTokens()) {
            int val = Integer.parseInt(st.nextToken());
            if (val < X) {
                System.out.print(val + " ");
            }
        }
    }
}

 


python

_, X = map(int, input().split())
arr = list(map(int, input().split()))
for a in arr:
    if a < X:
        print(a, end=' ')

N은 받기만 하고 변수에 저장할 필요가 없으므로 _(underscore)로 처리한다.

_(underscore)는 주로 특정값을 무시하기 위한 용도로 사용된다. 값이 필요하지 않거나, 사용되지 않는 값을 _ 에 할당하는 것을 의미한다.