파이썬/코드카타

[프로그래머스] 파이썬(Python) 자릿수 더하기

뜌비뜌바밥 2024. 8. 5. 19:51

오랜만에 파이썬 코드카타.

파이썬에 대한 기본 지식이 너무 부족하다고 느껴서, 파이썬 기초 강의부터 다시 듣는 중이다.

 

듣고 나니 확실히 코드카타에서 쓸 수 있는 내용이 그래도 조금이라도 많아졌다.

아주 초보적인 단계에서부터 풀리지 않아서 속이 답답했는데 그래도 조금은 파이썬에서 쓸 수 있는 

논리를 써보기도 하고, 그 논리에 맞는 코드를 가져오기도 한다.

 

이번주 더 열심히 파이썬 강의를 듣다보면, 더 할 수 있는게 많아질지도?


코드 카타

 

[문제 설명]

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return하는 solution 함수를 만들어 주세요.

예를 들어 N = 123이면 1+2+3 = 6을 return 하면 됩니다.

 

[제한 사항]

N의 범위 : 100,000,000 이하의 자연수

 

[처음 내가 생각한 코드]

def solution(n):
    sum = 0
    for i in n:
    	int(list[str(i)])
    answer = sum+i
    return answer

 

[실행 결과]

 

네...처참한 실패...나름 쓰려던 것들을 다 쓴 거 같은데 돌아가지 않았다.

이젠 검색의 시간 내 코드를 다시 고쳐보자

 

[수정 - 정답 1]

def solution(n):
    answer = 0
    for i in str(n):
        answer += int(i)
    return answer

 

인터넷에 찾아보니 내 코드를 간단하게 쪼개면 되는 일이었더라...

for 구분에서 str()를 써 문자형으로 만들고

answer 더해주는 구문에서 다시 int 형으로 만들어주면 완성

 

[정답 2]

또 다른 정답을 찾아보자.

def solution(n):
    return sum([int(i) for i in str(n)])

 

한 줄로 코드를 끝내버리는 구문 사용하기.

for i in str(n)은 똑같고 그 앞에 int(i)를 쓰고 sum 함수를 써주기

 

[정답 3]

def sum_digit(number):
    return sum(map(int,str(number)))

 

map 함수 이용하기

오늘 map 함수를 배우긴 했는데, 아직 잘 모르는 거 같다..

요건 map 함수 다시 공부해서 이해해보기


수업을 다시 들으니 코드카타가 조금씩 풀리는 거 같아서 다행이기도 하지만

빨리 했어야 했다는 부담도 있는 상황...

 

밀린 게 너무 많아서...언제 쫓아가나 싶다ㅠㅠ

주말이랑 평일 일과 외에도 부지런히 따라가보도록 노력해봐야지.

 

천천히 나의 속도대로 진행해보자고

'파이썬 > 코드카타' 카테고리의 다른 글

[Python 코드카타] - 정수 제곱근 판별  (0) 2024.08.13