정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.
첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)
둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.
10 5
1 10 4 9 2 3 8 5 7 6
1 4 2 3
1
2
3
4
5
6
7
|
listSize, aim = map(int, input().split())
makeList = list(map(int, input().split()))
for i in range(listSize):
if makeList[i] < aim:
print(makeList[i], end=' ')
|
cs |
이 문제에서 애매한 부분은 입력값을 제대로 정해주지 않았다는 겁니다.
둘째 줄에 수열 A를 이루는 정수 N을 랜덤함수로 주는 지, 직접 N개 만큼 입력해주는 지 정해져 있지 않기 때문입니다.
예제 입력에서 10개를 손으로 써놨지만 오히려 코딩 경험이 있는 사람이라면 수열을 랜덤함수로 만들라는 의미로 받아들일 지도 모릅니다.
map() 함수를 이용해 값을 받아줍니다.
1
2
|
list(map(int, input().split()))
|
cs |
이 부분으로 한 번에 설명하겠습니다. list()로 리스트를 만드는데 map()함수를 이용해 정수타입으로 형변환하여 공백을 구분해 받아줍니다.
split()함수가 공백을 쉼표로 인식합니다.
출력 부분에서는 print의 내부기능을 이용해 end= 를 사용합니다.
1
2
|
end=' '
end=''
|
cs |
첫번째의 경우에는 한칸씩 띄워지면서 값이 출력됩니다. end를 사용하면 print함수에 적용되어있는 자동개행을 막아줄 수 있습니다.
"댓글, 공감 버튼 한 번씩 누르고 가주시면 큰 힘이 됩니다"