[C++] 프로그래머스 자연수 뒤집어 배열로 만들기
반응형
programmers.co.kr/learn/courses/30/lessons/12932
1. 서론
아주 초간단 level 1 문제. 특히나 앞의 자릿수 더하기 문제를 풀었다면 이 문제는 껌이다.
자릿수 더하기: coding-log.tistory.com/32
2. 문제 풀이
자연수 n이 주어진다. 그 n을 각 자릿수대로 분리해서 배열에 역순으로 넣는 문제이다.
역순으로 넣는 것에 대해서 너무 어렵게 생각하지 않아도 된다. 왜냐하면 자릿수 더하기에서 했던 것처럼 하면 어차피 맨 뒤의 자릿수 값부터 분리되기 때문에 역순이 배열에 넣을 때 원래 순서가 되기 때문이다.
예를 들어 자연수 123이 있다.
123 % 10 = 3 -> 배열에 넣기 -> 123 / 10 = 12
12 % 10 = 2 -> 배열에 넣기 -> 12 / 10 = 1
1 % 10 = 1 -> 배열에 넣기 -> 1 / 10 = 0
이런 식으로 진행하면 배열에는 3, 2, 1 이 저절로 역순으로 들어가는 것이다.
3. 코드 설명
#include <string>
#include <vector>
using namespace std;
vector<int> solution(long long n) {
vector<int> answer;
while(1)
{
if (n <= 0) break;
answer.push_back(n % 10);
n /= 10;
}
return answer;
}
while문을 무한으로 돌리고 n이 0이 되었을 경우에 반복문을 멈춘다.
그리고 위에서 말한 것처럼 나머지 부분을 배열에 넣고 자연수 값을 10으로 나눠 다시 나머지를 구하는 것을 반복한다.
반응형
'Algorithm' 카테고리의 다른 글
[C++] 프로그래머스 정수 제곱근 판별 (0) | 2020.12.05 |
---|---|
[C++] 프로그래머스 정수 내림차순으로 배치하기 (0) | 2020.12.05 |
[C++] 프로그래머스 자릿수 더하기 (0) | 2020.12.05 |
[C++] 프로그래머스 이상한 문자 만들기 (0) | 2020.12.04 |
[C++] 프로그래머스 약수의 합 (0) | 2020.12.04 |