👀 문제 설명
124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.
- 124 나라에는 자연수만 존재합니다.
- 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.
예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다.
자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요.제한사항
- n은 500,000,000이하의 자연수 입니다.
입출력 예
✍🏻풀이
먼저 규칙을 찾아서, 그 규칙에 맞게 구현하면 된다.
예시를 보니, 3으로 나눈 몫과 나머지를 사용하는 문제같았다.
1의 경우, 3으로 나눈 몫은 0이고, 나머지는 1이다.
2의 경우, 3으로 나눈 몫은 0, 나머지는 2이다.
3의 경우, 3으로 나눈 몫은 1, 나머지는 0이다. -> 이 때, 124나라에서는 4로 표현한다. 즉 나머지가 0이면 4로 표현되는 것이다.
4의 경우, 3으로 나눈 몫은 1, 나머지는 1이므로 124나라에서는 11로 표현된다.
이 규칙을 구현하면 답이 되는 문제였다.
코드
//
// Programmers_12899.cpp
// Algorithm
//
// Created by 조수민 on 2020/12/10.
// Copyright © 2020 조수민. All rights reserved.
//
// 124 나라의 숫자(https://programmers.co.kr/learn/courses/30/lessons/12899)
#include <stdio.h>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
string solution(int n) {
string answer = "";
int share = n;
int remainder = -1;
while (share!=0) {
remainder = share % 3;
share = share / 3;
if (remainder == 0) { //나누어 떨어질 경우 몫을 1빼준다.
answer = "4" + answer;
share--;
}
else if (remainder == 1) {
answer = "1" + answer;
}
else if (remainder == 2) {
answer = "2" + answer;
}
}
return answer;
}
int main() {
return 0;
}
'숨막히는 알고말고 > 문제 풀이' 카테고리의 다른 글
[Programmers] 스킬트리 (0) | 2020.12.17 |
---|---|
[Programmers] 문자열 압축 (0) | 2020.12.17 |
[Programmers] 가운데 글자 가져오기 (0) | 2020.12.01 |
[Programmers] 두 개 뽑아서 더하기 (0) | 2020.12.01 |
[Programmers] 구명보트 (0) | 2020.11.30 |