N
: 정수 개수 (1 ≤ N ≤ 10,000)
X
: 기준이 되는 정수 (1 ≤ X ≤ 10,000)
A
: 수열 (1 ≤ a ≤ 10,000)
✅ 입력 조건
1. N, X가 공백으로 구분되어 입력
2. 공백으로 구분되어 N개 수열 A 입력
✅ 출력 조건
1. X보다 작은 수들 출력
2. 적어도 1개 존재
int
형으로 각 정수들을 입력받고 X와 대소비교하면 해결할 수 있는 문제다.
input()
함수보다 빠르게 입력받기 위해 sys.stdin.readline()
을 이용한다.
for문으로 A에서 X보다 작은 정수를 찾는다.
리스트를 1 4 2 3
같이 출력하기 위해 join()
함수를 이용한다.
print(' '.join(map(str, answer)))
for문으로 n번 반복해 대소 비교 →
최종 시간복잡도
for문으로 대소 비교
import sys
input = sys.stdin.readline
# 1. N, X 입력받기
N, X = map(int, input().split())
# 2. N개의 수열 A 입력받기
A = list(map(int, input().split()))
# 3. X보다 작은 수 찾기
answer = []
for a in A:
if a < X:
answer.append(a)
# 4. 출력하기
print(' '.join(map(str, answer)))
❗️ sys.stdin.readline()
- 파일의 첫 문장을 읽어오는 방식으로 개행
\n
기준으로 입력을 받는다.- 이때 변수에
\n
도 함께 저장되기 때문에.rstrip()
함수로 제거해준다.- 자료형을 지정해주면
.rstrip()
을 작성하지 않아도 된다.# .rstrip() 사용 A = input().rstrip() # 자료형 지정 N, X = map(int, input().split()) A = list(map(int, input().split()))
❗️join()
- 매개변수의 리스트 요소들을 하나하나 합쳐 하나의 문자열로 바꿔 반환하는 함수
'구분자'.join(리스트)
- 리스트의 요소들이 문자열
str
이어야 하므로 정수가 있는 리스트의 경우엔 문자열로 캐스팅해주어야 한다.'구분자'.join(map(str, 리스트))