-
[프로그래머스/Level 2] 124 나라의 숫자 (C++)알고리즘 문제풀이/프로그래머스 2020. 10. 29. 18:23
programmers.co.kr/learn/courses/30/lessons/12899
풀이
수학적 사고에 취약해서 너무 어려웠다. 구글 검색을 통하여 해결하였다. 알고리즘은 다음과 같다.
1. 1, 2, 4 3개의 숫자로 10진수가 변환되므로, 3진수를 이용할 생각을 한다.
2. 3진수는 0, 1, 2로 이루어져있는데 이를 1, 2, 4로 변경하기 위해서 3으로 나눈 값의 나머지가 0이면 문자열에 4를 추가하고 해당 몫에 1을 빼주었다.
4. 3으로 나눈 나머지가 0이 아닌 경우는 나머지를 문자열에 추가한다.
5. 처음의 입력 정수가 0이 될 때까지 계속 반복한다.
#include <string> #include <vector> using namespace std; string solution(int n) { string answer = ""; while(n != 0) { if(n % 3 == 0) { answer.insert(0, "4"); n = n / 3 - 1; } else { answer.insert(0, to_string(n % 3)); n /= 3; } } return answer; }
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Level 2] 소수 만들기 (C++) (0) 2020.10.30 [프로그래머스/Level 2] 스킬트리 (C++) (0) 2020.10.30 [프로그래머스/Level 2] 멀쩡한 사각형 (C++) (0) 2020.10.29 [프로그래머스/Level 2] 기능개발 (C++) (0) 2020.10.28 [프로그래머스/Level 2] 최댓값과 최솟값 (C++) (0) 2020.10.28