티스토리 뷰

반응형

https://programmers.co.kr/learn/courses/30/lessons/12899

 

코딩테스트 연습 - 124 나라의 숫자

 

programmers.co.kr

 


⊙ 문제

⊙ 제한사항

⊙ 입출력 예


 

⊙ 문제 접근 과정

 

n=1일 때, 124진법으로는 1이다.

그리고 n%3 값도 1이다.

 

n=2일 때, 124진법으로는 2이다.

그리고 n%3 값도 2이다.

 

n=3일 때, 124진법으로는 4이다.

그리고 n%3 값은 0이다.

 

n%3의 값을 보자. 순서대로 1, 2, 0이다.

여기서 나는 index가 보였다.

 

0, 1, 2로 접근해서 풀면 편하지 않을까? 그래서 string 배열을 생성해주었고

0의 자리에 4, 1의 자리에 1, 2의 자리에 2를 넣었다. [4, 1, 2]

 

그리고 n의 값을 124진법으로 다 소모할 때까지 반복문을 돌리고 싶었다.

while문이 자연스럽게 생각났고 그 안에서 계속해서 돌렸다.


 

⊙ 문제 풀이

 

#include <string>
#include <vector>

using namespace std;

string solution(int n) {
    string answer = "";
    string temp[3] = {"4", "1", "2"}; //index로 바로 접근하기 위해 배열에 값 넣기

    while(n) {
        answer = temp[n%3]+answer;

        if(!(n%3)) n=n/3 -1;
        else n/=3;
    }

    return answer;
}

⊙ 마무리

 

 

NONE

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함