[파이썬/Python] 백준 10871번: X보다 작은 수

·2024년 6월 27일
0

알고리즘 문제 풀이

목록 보기
5/105
post-thumbnail

📌 문제 : 백준 10871번



📌 문제 탐색하기

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번 반복해 대소 비교 → O(n)O(n)

최종 시간복잡도
O(n)O(n)

알고리즘 선택

for문으로 대소 비교



📌 코드 설계하기

  1. N, X 입력받기
  2. N개의 수열 A 입력받기
  3. X보다 작은 수 찾기
  4. 출력하기


📌 정답 코드

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, 리스트))


📌 회고

  • 원하는 출력 형태로 만들어줄 수 있는 방식들을 잘 기록하고 연습해두어야 겠다.

0개의 댓글

관련 채용 정보