얼렁뚱땅
[Cos Pro 1급][Python][기출문제] 1차 문제 4 본문
문제 유형 : 구현
💠문제설명
어느 누군가가 타임머신을 타고 과거로 가서 숫자 0이 없는 수 체계를 전파했습니다. 역사가 바뀌어 이제 사람들의 의식 속엔 0이란 숫자가 사라졌습니다. 따라서, 현재의 수 체계는 1, 2, 3, ..., 8, 9, 11, 12, ...와 같이 0이 없게 바뀌었습니다.
0을 포함하지 않은 자연수 num이 매개변수로 주어질 때, 이 수에 1을 더한 수를 return 하도록 solution 함수를 완성해주세요.
💠매개변수 설명
더보기
자연수 num이 solution 함수의 매개변수로 주어집니다.
* num은 1 이상 999,999,999,999,999,999 이하의 0을 포함하지 않는 자연수입니다.
💠Return 값 설명
더보기
자연수 num에 1을 더한 수를 return 해주세요.
💠예시
더보기
| num | return |
|---------|---------|
| 9949999 | 9951111 |
9,949,999에 1을 더하면 9,950,000이지만 0은 존재하지 않으므로 9,951,111이 됩니다.
💠코드
전체코드
def solution(num):
answer = ''
for i in str(num+1):
if i == '0':
i = '1'
answer += i
return answer
#The following is code to output testcase.
num = 9949999;
ret = solution(num)
#Press Run button to receive output.
print("Solution: return value of the function is", ret, ".")
- 일단 1을 더해서 string으로 바꿔주고, 하나씩 가져와서 0이면 1로 바꿔주는 작업을 한다.
💠개인정리
for i in range(len(str(num+1))):
if new[i] == '0':
new[i] = '1'
TypeError: 'str' object does not support item assignment
위와 같은 방식으로는 안된다.
💠Python 답게 문제 풀기
#Comprehension (expression)
num = 9949999
answer = ''.join('1' if x =='0' else x for x in str(num+1))
print(answer)
- Comprehension으로 간단하게 만들기
- comprehension에 대한 자세한 내용은 따로 정리를 하였다.
- 만들어진 character를 하나씩 join 하기
'Python Study > Cos Pro 1급 기출문제' 카테고리의 다른 글
[Cos Pro 1급][Python][기출문제] 1차 문제 3 (0) | 2024.02.05 |
---|---|
[Cos Pro 1급][Python][기출문제] 1차 문제 2 (1) | 2024.02.04 |
[Cos Pro 1급][Python][기출문제] 1차 문제1 (0) | 2024.02.01 |