정수 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
N, X = map(int, input().split()) A = list(map(int, input().split())) for i in range(N): if A[i] < X: print(A[i], end=" ")
처음에 작성했던 코드는 다음과 같다.
N, X = map(int, input().split()) A = list(map(int, input().split())) for i in A: if i < X: print(i, end=" ")
이 코드도 백준에서 정답 처리가 되기 했긴 했지만, N이 입력될 필요가 없는 코드였기 때문에 다시 고민하기 시작했다.
for문으로 수열의 개수 N개를 먼저 지정하여 수열 A가 N개의 정수로 구성됨을 상기시켰다.
if문으로 정수 X보다 작은 수열 A를 찾는다.
만약 N이 5라면,
for문을 통해 A[1] < X, A[2] < X, A[3] < X, A[4] < X, A[5] < X 이 반복되며, 참인 경우를 print 하게 된다.
일반적으로 줄단위로 출력되나, end를 한 칸 공백으로 설정하기 위해 end=" "를 작성하면 답을 구할 수 있다.