반응형
문제 설명
You will be given a number and you will need to return it as a string in Expanded Form. For example:
expanded_form(12) # Should return '10 + 2'
expanded_form(42) # Should return '40 + 2'
expanded_form(70304) # Should return '70000 + 300 + 4'
NOTE: All numbers will be whole numbers greater than 0.
해결 방법
1. 숫자를 문자열로 바꾼다.
2. 문자열 중에 '0'이 아닌 수를 찾는다.
3. 찾은 수에 현재 남은 자리수 만큼 '0'을 붙인다.
4. 리스트에 담는다.
5. 리스트 요소를 ' + ' 와 함께 문자열로 합친다.
def expanded_form(num):
num_str = str(num)
result = ' + '.join([j+('0'*(len(num_str)-i-1)) \
for i, j in enumerate(num_str) if j != '0'])
return result
str을 두번 사용하게 되므로 앞서 변수에 할당해주었다.
컴프리핸션 작성시 너무 길어지므로 가독성을 위해 두 줄로 만들었다.
enumerate로 인덱스를 구했기 때문에 의외로 쉽게 풀 수 있었다!
반응형
'나는 이렇게 학습한다 > Algorithm & SQL' 카테고리의 다른 글
Human Readable Time (0) | 2022.02.20 |
---|---|
Where my anagrams at? (0) | 2022.02.19 |
Split String (0) | 2022.02.17 |
Bit Counting (0) | 2022.02.16 |
Stop gninnipS My sdroW! (0) | 2022.02.15 |