코딩/백준

[백준/자바/파이썬] 10871번 X보다 작은 수 코딩테스트 연습풀이

thisisjade 2022. 5. 10. 23:39
728x90

문제 출처: https://www.acmicpc.net/problem/10871

 

10871번: X보다 작은 수

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

www.acmicpc.net

 

문제

정수 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

 

자바 정답

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

class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        
        int a = Integer.parseInt(st.nextToken());
        int target = Integer.parseInt(st.nextToken());
        st = new StringTokenizer(br.readLine(), " ");
   
        
        for(int i = 0; i<a; i++){
        	int value = Integer.parseInt(st.nextToken());
        	
        	if (value< target)
        		bw.write(value+" ");
        }
        bw.flush();
    }
}

1. st를 사용하여 a와 b에 각각 입력

2. st를 사용하여 st에 a만큼의 개수 입력

3. for문을 통해 value에 하나씩 입력

4. if문을 통해 비교 후 value가 target보다 작을 경우 bw에 입력

5. 출력

 

파이썬 정답

N, X = map(int,input().split())
A = list(map(int,input().split()))
for i in range(N):
    if X > A[i]:
        print(A[i], end=(' '))

1. N, X 입력

2. A 리스트 형식으로 입력

3. 리스트 요소별로 X보다 작을 경우 end를 ' '으로 바꾸어 한줄에 출력

728x90