문제)
자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.
입력)
첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.
출력)
첫째 줄부터 N번째 줄 까지 차례대로 출력한다.
예제 | |
입력 | 출력 |
5 | 5 4 3 2 1 |
저는 이 문제를 보았을 때 알고리즘 단계에 for문 안에 있어서 그대로 하면 되겠다 싶었습니다.
For i in range(int(input()), 0, -1):
print(i)
나름 용량 적게 먹으라고 짧게 작성했는데 더 효율적인(?) 코드를 보았습니다.
n = range(int(input()),0,-1)
print('\n'.join(map(str,n)))
풀어보면(임의로 a, b 정의했습니다)
>>> a = int(input())
a = 5
>>> b = range(a, 0, -1)
range(5, 0, -1)
>>> b = list(b)
[5, 4, 3, 2, 1]
>>> b = list(map(list(b)))
['5', '4', '3', '2', '1']
>>> print('\n'.join(b))
5
4
3
2
1
길이는 더 길긴 하지만, 속도면에서 112ms / 88ms로 꽤나 차이났습니다.
아직 시간이 중요한지 용량이 중요한지 잘 모르긴 하지만, 새로운 접근 방법은 재밌는 거 같습니다.
'알고리즘 > Python' 카테고리의 다른 글
중복된 값 개수 출력하기 (0) | 2021.06.20 |
---|---|
더하기 사이클, list와 숫자로 풀이 (0) | 2021.05.18 |
입력받은 문자열의 최소, 최댓값 구하기 (0) | 2021.05.11 |
문자열 곱하기 (0) | 2021.04.18 |
eval, exec 함수 (0) | 2021.04.13 |