출처: https://meyouus.tistory.com/64 [정보 공유 - For Me For You For Us]
본문으로 바로가기

 

처음에 접했을 때는 어려운 문제였다. 이유는 입력 설명에 적혀 있듯이, "둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다."라고 설명이 적혀있는데, 예제 입력1을 보면 A의 입력이 1 10 4 9 2 3 8 5 7 6 처럼 되어있다. 즉, 저런 방식으로 입력을 하면서도, 나중에 A의 값을 불러일으킬 수 있어야 한다는 것이다.

생각해보니, map을 사용하고, 이에 list function을 사용하면 간단하게 가능하다고 생각되어, 다음과 같이 하고 실행했더니 맞췄다:

import sys

N, X = map(int, sys.stdin.readline().split())
A = list(map(int, sys.stdin.readline().split()))
strX = ''

for i in range(N):
    if A[i] < X:
        strX += str(A[i]) + ' '
print(strX)

 

※ 다른 사람의 풀이:

이에 따라 다른 사람의 풀이를 한번 살펴보기로 했다:

count, num = map(int, input().split())
inArr = list(map(int, input().split()))
for i in range(count):
        if inArr[i] < num:
                print(inArr[i], end=" ")

비슷했지만, 마지막에 end= " "가 눈에 띈다. 일반적으로 for문으로 print를 하게 되면 이 숫자들이 새로운 line으로 넘어가면서 숫자를 print하게 되는데, 이 end=" "를 통해 숫자와 숫자 사이에 단순한 공백 하나가 생기게 하고 하나의 line에서 출력하게끔 했다.