본문 바로가기
Python/코딩테스트

배열 - 배열채우기

by Nanki 2025. 3. 4.

문제 :

10개의 정수 저장할 수 있는 배열선언 후, 10개의 정수를 차례로 받음.
만약 중간에 0이 입력되면 10개 입력이끝나지 않더라도 입력을 종료함.
그 후 입력된 정수를 가장 나중에 입력된 정수부터 차례대로 출력하는 프로그램을 작성해라.
단, 처음부터 0이 주어지는 경우는 고려하지 않아도 됨.

 

ex)
3 1 13 5 83 0

83 5 13 1 3

1) 첫번째 행을 리스트로 받기
2) 0이 입력되기 전까지의 값들을 받을 빈 리스트 생성
3) for문으로 리스트 값 하나하나를 0인지 또는 전체 입력의 갯수가 10개인지확인
4) 2)에서 생성한 리스트에 append 하여 값을 대입
5) 2)에서 생성한 리스트를 slicing을 이용해 [::-1]로 뒤집어서 출력

 

arr = list(map(int, input().split()))
reserved_arr = []
count = 0
for elem in arr :
    if (elem == 0) or (count == 10) :
        break
    else :
        reserved_arr.append(elem)
        count += 1
for elem in reserved_arr[::-1] :
    print(elem, end = ' ')

 

 

< 또 다른 풀이>

* 위 풀이와는 다르게 빈 리스트를 안만들는 방법이다.

arr = list(map(int, input().split()))
count = 0
for elem in arr :
    if (elem == 0) or (count == 10) :
        break
    else :
        count += 1

for i in range(count - 1, -1, -1) :
    print(arr[i], end = ' ')

 

문제 출처 : 코드트리

반응형