코딩공부/알고리즘

[파이썬 풀이] 백준 10871.X보다 작은 수

잉옐잉 2021. 11. 6. 23:59

문제   

정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.

 

입력   

첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)

둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.

ex) 10 5

1 10 4 9 2 3 8 5 7 6

 

출력   

X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.

ex) 1 4 2 3

 

코드   

import sys
N,X=sys.stdin.readline().split()
llist=sys.stdin.readline().split()
out=[]
for i in range(int(N)):
    if int(llist[i])<int(X):
        out.append(llist[i])
        
print(" ".join(out))

 

관련 개념 정리   

sys.stdin.readline()

input함수와 같은 기능을 하는 코드입니다.

단, 여러줄을 입력 받아야 하는 경우 input함수보다 더 적은 시간으로 구동이 가능하기 때문에 해당 코드를 사용하는 것이 더 좋습니다.

해당 코드에 대해서는 추후에 따로 포스팅을....!

 

 

split

또한 값을 입력받을 때, 한 번에 여러 값을 입력받을 수 있습니다.
그때 사용할 수 있는 함수가 바로 split 함수입니다.

split할 변수 이름.split('구분자')

 

만약 split()일 경우, space, tap, enter와 같은 공백을 기준으로 문자열을 나눕니다.

 

 

리스트

리스트란 여러개의 숫자나 문자를 하나의 변수에 저장할 때 사용합니다.

리스트이름=[데이터1,데이터2,데이터3...]
#b=[]와 같은 비어있는 리스트도 생성 가능!

또한 인덱싱이 가능합니다. 인덱스값은 0부터 시작합니다.

d=[1,2,3]
print(d[0]) #1
print(d[1]) #2
print(d[2]) #3

 

 

for문

특정 코드들을 원하는 횟수 만큼 반복 시킬 때 사용하는것이 for문입니다.

for문의 기본 구조는 아래와 같습니다.

for i in 리스트(or 문자열, 튜플):
	실행할 코드

리스트,문자열,튜플의 첫 글자나 요소부터 마지막 글자나 요소까지 차례대로 변수에 대입됩니다.

 

for문의 범위와 변수값을 숫자로 정하고 싶을때는 아래와 같이 range함수를 사용합니다.

for i in range(시작숫자,종료숫자,step):
	실행할 코드

step은 얼만큼씩 변수를 증가 시킬지 정하는 것 입니다.

시작숫자와 step은 생략되어도 됩니다.

 

 

if문

<조건> 하면, <코드>를 실행하고 싶을때 쓸 수 있는것이 바로 if문입니다.

기본적인 형태는 아래와 같습니다.

if 조건문 1:
	실행 코드 1 ...
elif 조건문 2:
	실행 코드 2 ...
else:
	실행 코드 3 ...

해석을 하자면, 조건문 1을 충족하면 실행 코드 1을 실행하고, 그게 아닌 조건문 2를 충족하면 실행 코드 2를 실행한다.

조건문 1과 조건문 2를 모두 충족하지 않으면 실행 코드 3을 실행한다. 입니다.

elif와 else는 필수는 아닙니다.

 

 

append

append함수는 리스트의 마지막에 사용자가 원하는 요소를 추가하는 함수입니다.

리스트.append(추가 할 요소)

위와 같은 형태로 사용 가능합니다.

 

 

join

join함수는 문자열 사이에 사용자가 선택한 문자를 넣을 수있는 함수입니다.

배열의 각 요소를 합쳐서 문자열로 만들어주는 역할을 하기도 합니다.

print("1".join("룰루랄라"))
# 룰1루1랄1라

list=["졸","리","다"]
print(" ".join(list))
# 졸 리 다

위와 같은 형태로 사용 가능합니다.

 

 

산술 연산자

x+y x 더하기 y
x-y x 빼기 y
x*y x 곱하기 y
x/y x 나누기 y
x//y x 나누기 y의 몫
x%y x 나누기 y의 나머지
x**y x의 y제곱