입력:
다섯 자리로 이루어진 1개의 정수를 입력받는다.
(단, 10,000 <= 입력받는 수 <= 99,999 )
출력:
각 자리의 숫자를 분리해 한 줄에 하나씩 [ ]속에 넣어 출력한다.
내 코드:
x = input()
x = str(x)
for i in range(len(z)):
b = [int(x[i])*10**(len(x)-1-i)]
print(b)
Comment: 여기서 가장 중점적인 문제는, 어떻게 자릿수에 맞는 10제곱수를 곱하느냐입니다. 여기서는 입력한 숫자의 자릿수와 제곱수를 이용하면 비교적 간단하게 풀이하였습니다. 하지만 이해가 가지 않는 분도 있을 수 있으므로, 위의 []안에 들어간 코드를 한 번 더 풀어 써보겠습니다.
예를 들어, x라는 변수로 11111이라는 수가 입력되었다고 합시다. 그렇다면
x=11111
len(x)=5
가 됩니다. 그렇게 되면, 출력 결과는 다음과 같아야 합니다.
[10000]
[1000]
[100]
[10]
[1]
이것을 조금 다르게 써 보겠습니다.
10000 = 10⁴
1000 = 10³
100 = 10²
10 = 10¹
1
보다시피 10000은 10의 4제곱이며, 이는 자릿수 5에서 1을 뺀 값입니다. 1000 역시 10의 3제곱이며, 이는 자릿수 4에서 1을 뺀 값입니다. 이에 기초해 코드를 풀어보겠습니다. 우선, x 각 자리의 숫자들을 따로 분리해야 합니다. int 자료형에서 string 자료형으로 바꾸면, 인덱싱으로 분리가 가능합니다.
x=str(x) # 문자열로 자료형 변경
for i in range(len(x)): # 자릿수만큼 for문 반복
num=int(x[i])
print(num) # 각 자릿수 숫자 하나씩만 출력
이제 각 자릿수에 맞는 10제곱수를 곱해줍니다.
x=str(x) # 문자열로 자료형 변경
for i in range(len(x)): # 자릿수만큼 for문 반복
p=len(x)-1 # 10제곱수=자릿수-1
b=[int(x[i])*10**(p-i)]
print(b)
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp 기초 100제]1027 : [기초-입출력] 년월일 입력 받아 형식 바꿔 출력하기(풀이 성공) (0) | 2020.10.28 |
---|---|
[CodeUp 기초 100제]1026 : [기초-입출력] 시분초 입력받아 분만 출력하기(풀이 성공) (0) | 2020.10.27 |
[CodeUp 기초 100제]1024 : [기초-입출력] 단어 1개 입력받아 나누어 출력하기(풀이 성공) (0) | 2020.10.24 |
[CodeUp 기초 100제]1023 : [기초-입출력] 실수 1개 입력받아 부분별로 출력하기(풀이 성공) (0) | 2020.10.21 |
[CodeUp 기초 100제]1022 : [기초-입출력] 문장 1개 입력받아 그대로 출력하기(풀이 성공) (0) | 2020.10.20 |