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
- 123을 10으로 나눈 나머지를 구합니다. >> 3 (변수에 더함)
- 123을 10으로 나눈 정수 몫을 구합니다. >> 12
- 12( 2. 의 결과 )를 10으로 나눈 나머지를 구합니다. >> 2 ( 변수에 더함)
- 12를 10으로 나눈 정수 몫을 구합니다. >> 1
- 1( 4. 의 결과 )을 10으로 나눈 나머지를 구합니다. >> 1 ( 변수에 더함)
728x90