문제 :
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 = ' ')
문제 출처 : 코드트리
반응형
'Python > 코딩테스트' 카테고리의 다른 글
배열 - 학점계산기 (0) | 2025.03.04 |
---|---|
배열 - 특정 수 도달하기 (0) | 2025.03.04 |
배열 - 기본 개념(리스트 slicing/append/pop/len) (0) | 2025.03.04 |
다중반복문 - 소수 구하기(bloon 변수활용) (0) | 2025.03.04 |
다중반복문 - 완전 수 (0) | 2025.03.04 |