게임 개발자(진)
Brain Backup
게임 개발자(진)
전체 방문자
오늘
어제
  • 분류 전체보기 (111)
    • 언리얼엔진 (10)
    • 유니티 (19)
    • 운영체제 (0)
    • 알고리즘 (36)
      • 백준 문제풀이 (26)
      • 프로그래머스 문제풀이 (10)
    • 자료구조 (1)
    • Git (2)
    • C++ (15)
      • STL (10)
      • 기타 (5)
    • Python (9)
    • BackEnd (5)
      • IOCP게임서버 (5)
      • HTTP (0)
    • FrontEnd (12)
      • HTML (11)
      • CSS (1)
    • 프로젝트 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

티스토리

hELLO · Designed By 정상우.
게임 개발자(진)

Brain Backup

[C++] 124 나라의 숫자 (Lv.2)
알고리즘/프로그래머스 문제풀이

[C++] 124 나라의 숫자 (Lv.2)

2022. 9. 4. 02:42

문제


풀이

 

이 문제의 규칙?은

 

일단 기본적으로 

 

n을 3으로 계속해서 나눕니다 ( 몫이 0이 될때까지 )

 

그때그때 나오는 나머지가 있을텐데 

나머지가

0=>4

1=>1

2=>2 

에 대응됩니다. 

 

이 나머지에 대응되는 숫자는 124나라의 숫자에서 가장 오른쪽부터 채워집니다. 

 

여기서 이 규칙을 사용하기 위해서 유의해야 할 것이 있는데,

나머지가 0일때는 몫-1을 해줘야 한다는 것입니다.  

 

 

 

ex) n==15일때 

 

먼저 n/3을 하면

몫:5 , 나머지:0 

그럼 일단 "4"가 채워짐. 

근데 이때 나머지가 0이니까 몫-1을해서 4가됨.

 

 

4/3을 하면

몫:1 , 나머지:1

그럼 "1"이 추가로 채워져서 "14"가 됨.

 

1/3을 하면

몫:0 , 나머지:1

그럼 "1"이 추가로 채워져서 "114"가 됨. 

이떄 몫이 0이 됐으므로 종료.

즉 답은 "114"가 나옴

 

 

#include <string>
#include <vector>

using namespace std;

string solution(int n) {
    string aws;
    
    while(n)
    {
        int temp=n%3;
        
        if(temp==0)
        {
            aws="4"+aws;
            n--;
        }
        else if(temp==1)
        {
            aws="1"+aws;
        }
        else if(temp==2)
        {
            aws="2"+aws;
        }
        n=n/3;
    }
    return aws;
    
}

'알고리즘 > 프로그래머스 문제풀이' 카테고리의 다른 글

[C++] 올바른 괄호 (Lv.2)  (0) 2022.09.05
[C++] 올바른 괄호 (Lv.2)  (0) 2022.09.04
[C++] 멀쩡한 사각형 (Lv.2)  (0) 2022.08.30
[C++] 단체사진 찍기 (Lv.2)  (0) 2022.08.29
[C++] 카카오 프렌즈 컬러링북 (Lv.2)  (0) 2022.08.28
    '알고리즘/프로그래머스 문제풀이' 카테고리의 다른 글
    • [C++] 올바른 괄호 (Lv.2)
    • [C++] 올바른 괄호 (Lv.2)
    • [C++] 멀쩡한 사각형 (Lv.2)
    • [C++] 단체사진 찍기 (Lv.2)
    게임 개발자(진)
    게임 개발자(진)
    공부한 내용을 기록하기 위한 블로그(게임프로그래밍이 주 분야)

    티스토리툴바