CodingTest/[프로그래머스 LV.1]

프로그래머스 LV.1 - 자릿수 더하기[Python]

짱엉 2023. 1. 29. 00:47
728x90

<나의 풀이>

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

문자열로 형 변환해서 푸는 방법

1. 입력된 N(정수형)을 문자로 형 변환한다.

2. 형 변환된 문자열의 길이만큼 반복하면서 각 자리 값을 갖고 온다.

3. 갖고 온 자리값을 숫자로 변환해 변수에 합한다.

 

알고리즘이 정해 졌으니 이제 코드로 표현해 보겠습니다.

먼저 숫자를 문자로 형 변환하는 함수는 str()입니다.

(참고로 int(), list(), tuple()과 같이 각 자료형 이름으로 만들어진 함수가 형 변환 함수입니다. )

 

<다른 풀이>

형 변환을 사용하지 않는 방법

앞에서 이야기한 것처럼 다른 언어에서는 형 변환이 조금 불편할 수도 있습니다.

그래서 이번에는 형 변환을 사용하지 않는 방법을 소개하겠습니다.

 

이 방법의 핵심은 바로 나누기와 나머지입니다.

먼저 정수 몫과 나머지를 구하는 연산자인 // 와 % 가 필요합니다. (코딩에서는 나머지 구하는 일이 은근히 많으니 % 연산자는 잘 기억해 두세요)

 

def solution(N):
    answer = 0

    while(N>0):
        answer+=(N%10)
        N=N//10

    return answer
  1. 123을 10으로 나눈 나머지를 구합니다.                 >> 3  (변수에 더함)
  2. 123을 10으로 나눈 정수 몫을 구합니다.                 >> 12 
  3. 12( 2. 의 결과 )를 10으로 나눈 나머지를 구합니다.  >> 2 ( 변수에 더함)
  4. 12를 10으로 나눈 정수 몫을 구합니다.                   >> 1 
  5. 1( 4. 의 결과 )을 10으로 나눈 나머지를 구합니다.    >> 1 ( 변수에 더함)
728x90