안녕하세요. BlockDMask 입니다.
이제 날씨도 선선한게, 노트북 딱 들고 공원 벤치에 앉아서 코딩하기 딱 좋은 날씨 인거 같아요 그쵸?
0. 제목
프로그래머스(programmers) LEVEL 1 자릿수 더하기 입니다.
1. 문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어주세요.
예를들어 N = 2345 이면 2+3+4+5 = 14 를 return 하면 됩니다.
2. 풀이 과정
문제를 잘 읽어 보면 2345를 하나씩 분리해서 더하면 됩니다.
매개변수로 들어오는 2345를 일의자리를 계속 분리하고 일의자리를 없애는 방식으로 진행하면됩니다.
일의 자리를 구하는 것은 10으로 나눈 나머지를 구하면 해결됩니다.
일의 자리를 없애는 것은 10으로 나눈 몫으로 해결됩니다.
1> 2345를 10으로 나눈 나머지
- 2345 % 10 = 5 이고, 맨 끝자리 5를 구했으니까 234만 남을 수 있도록
2> 2345를 10으로 나눈다
- 2345 / 10 = 234 몫이 234가 남게 됩니다.
3> 234를 10으로 나눈 나머지
- 234 % 10 = 4 이고, 맨 끝자리 4를 구했으니까 23만 남을 수 있도록
4> 234를 10으로 나눈다.
- 234 / 10 = 23 으로 남게 됩니다. (몫)
5> 23 % 10 = 3 이 남고 (3을 구했고)
6> 23 / 10 = 2
7> 2 % 10 = 2
8> 2 / 10 = 0 (반복문의 종료조건)
위와 같은 순서로 구하면됩니다. %로 나눈 나머지들을 다 더하면 됩니다.
3. 소스 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <iostream> using namespace std; int solution(int n) { int answer = 0; while(n != 0) { answer = answer + n%10; n = n/10; } return answer; } | cs |
4. 채점
오늘도 읽어 주셔서 감사합니다.
제가 시간들여 작성한 포스팅이 당신에게 도움이 되었으면 좋겠습니다.
'<알고리즘 문제풀이&연습> > [C++] 백준, 프로그래머스 등등' 카테고리의 다른 글
[LeetCode] 1018. Binary Prefix Divisible By 5 Solution in C++ (0) | 2019.04.12 |
---|---|
[C++ operator overloading] Box it! (클래스, 연산자 오버로딩) (0) | 2018.12.01 |
[프로그래머스] LEVEL 1 : 핸드폰 번호 가리기 (C++) (1) | 2018.09.18 |
[프로그래머스] LEVEL 1 : 자연수 뒤집어 배열로 만들기 (C++) (0) | 2018.08.17 |
[프로그래머스] LEVEL 1 : 문자열 다루기 기본(C++) (0) | 2018.08.15 |
[프로그래머스] LEVEL 1 : 나누어 떨어지는 숫자 배열(C++) (4) | 2018.08.05 |
[프로그래머스] LEVEL 1 : 가운데 글자 가져오기(C++) (0) | 2018.08.04 |
[Level 2] 콜라즈 추측 (0) | 2017.12.26 |