출처 : https://www.acmicpc.net/problem/10871
10871번: X보다 작은 수
첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
www.acmicpc.net
문제
정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)
둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
출력
X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.
예제 입력 1 복사
10 5 1 10 4 9 2 3 8 5 7 6
예제 출력 1 복사
1 4 2 3
풀이1
a, b = map(int,input().split(" "))
c = list(map(int,input().split(" ")))
for i in range(a):
if b > c[i]:
print(c[i], end = " ")
풀이2 (출처 : https://hwiyong.tistory.com/140 )
N, X = map(int, input().split(' '))
A = list(input().split(' '))
sysout = ''
for i in A:
if(int(i) < X):
sysout += str(i) + ' '
print(sysout[:-1])
풀이3 (내가 다시 풀어본 풀이)
N,X = map(int, input().split())
A = list(map(int, input().split()))
SmallList = []
for i in range(N):
if X > A[i]:
SmallList.append(A[i])
for j in range(len(SmallList)):
print(SmallList[j], end=" ")
헷갈렸던 점
X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다.
X보다 작은 수는 적어도 하나 존재한다.
<- 이부분이 헷갈렸다..
X보다 작은 수를 적어도 하나 입력해주라는 뜻인가? 수열A를 랜덤함수로 지정해줘야하는건가 했는데 예제 입력을 보니 또 아닌 것 같고..마지막에 출력하는 부분에서 리스트를 통째로 출력시켰는데 그러면 안됐다.
X보다 작은 요소들을 하나하나 공백으로 구분해서 출력했어야함.굳이 내 풀이에서 SmallList를 만들면서 for문을 두번 돌릴 필요는 없었네..
풀이4 (내가 다시_2 풀어본 풀이)
N,X = map(int, input().split())
A = list(map(int, input().split()))
for i in range(N):
if X > A[i]:
print("%d" %A[i], end=" ")
이렇게 풀었더니 메모리, 시간 소요가 줄었다. 굳 근데 풀이1이랑 같네 ㅎ ;;
반응형
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[백준] 파이썬(python) 2920 (0) | 2019.09.20 |
---|---|
[백준] 파이썬(python) 10951 (0) | 2019.07.17 |
[백준] 파이썬(python) 10952 (0) | 2019.07.16 |
[백준] 파이썬(python) 2438 (0) | 2019.07.11 |
[백준] 파이썬(python) 2884 (0) | 2019.07.09 |