반응형
programmers.co.kr/learn/courses/30/lessons/12899
몫과 나머지를 이용한 수학 문제였습니다.
풀이방법
이 나라의 한 자리 수는 3개의 수로 표현됩니다. 10진수에서 10을 나눈 나머지는 곧 가장 오른쪽 한 자리의 수를 의미합니다. 3으로 나눈 나머지가 이 나라의 1자리이므로 10진수를 3씩 나누어 조건을 확인한 뒤, 해당 나라의 숫자로 한 개씩 문자를 추가해줍니다.
Code
#include <bits/stdc++.h>
using namespace std;
string solution(int n) {
string answer = "";
int num = n;
while(num){
if(num % 3 == 0) answer = "4" + answer, num--;
else if(num%3==1) answer = "1" + answer;
else if(num%3==2) answer = "2" + answer;
num/=3;
}
return answer;
}
int main(){
int n;
cin >> n;
cout << solution(n);
}
'Algorithm > Math' 카테고리의 다른 글
(C++) - 프로그래머스(연습문제) : 최대공약수와 최소공배수 (0) | 2021.03.05 |
---|---|
(C++) - 프로그래머스(연습문제) : 소수찾기 (0) | 2021.03.01 |
(C++) - 백준(BOJ) 1173번 : 운동 (0) | 2021.02.09 |
(C++) - 백준(BOJ) 6502번 : 동혁 피자 답 (0) | 2021.01.20 |
(C++) - 백준(BOJ) 9020번 : 골드바흐의 추측 답 (0) | 2020.10.06 |