정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.
첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)
둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.
import sys
n, x = map(int,sys.stdin.readline().rstrip().split())
nums = map(int, sys.stdin.readline().rstrip().split())
n_list = [num for num in nums if num < x]
output = ""
for i in n_list:
output+=str(i)
print(" ".join(output))
너무 복잡하게 생각했다.
split()
을 통해 수열을 리스트로 만들고,
리스트에서 x보다 작은 수를 다시 리스트로 만들어 담았다.
그 다음 빈문자열을 만들고 x보다 작은 수를 담은 리스트 각각의 수를 문자로 만들어 합친 후 join()
을 통해 공백을 넣었다.
import sys
n, x = map(int, sys.stdin.readline().rstrip().split())
nums = map(int, sys.stdin.readline().rstrip().split())
for i in range(len(nums)):
if nums[i] < x:
print(nums[i], end = " ")
TypeError: 'map' object is not subscriptable
map()
함수에 대한 이해가 부족했다.
타입을 확인해보니 list
가 아닌 map
으로 나왔다.
그래서 map을 list()
를 사용해 형 변환을 했다.
import sys
n, x = map(int,sys.stdin.readline().rstrip().split())
nums = list(map(int, sys.stdin.readline().rstrip().split()))
for i in range(len(nums)):
if nums[i] < x:
print(nums[i], end = " ")
파이썬 기초는 한다고 생각했었는데 배우기만 하고 스스로 연습을 하지 않으니까 여전히 제자리 걸음을 하고 있었다.
아직 갈 길이 멀지만 이제라도 꾸준히 공부해야지🤣