[프로그래머스 Level 2, C++] 124 나라의 숫자

2022. 7. 27. 12:39·정리 전 게시글/공부 관련

문제 : 124 나라의 숫자


풀이 방법

3진법으로 풀면 되는거 아닌가 했는데 0이 없는 나라였다...

 

124 나라의 수체계의 3번 째를 3진수의 10으로 맞추려면 3으로 나눴을 때 0이 나오면 4로 만들면 된다

그리고 몫에서 1을 빼면 완전한 4가 된다

 

조금 더 자세히 보면

10진수 3은 3진수로 바꿀 때 10이 된다

 

3을 3으로 나눴을 때 나머지가 0, 몫이 1이다.

그럼 여기서 나머지 0을 4로 바꾸고 몫에서 1을 뺀다면?

 

이렇게 계산을 한 다음, 몫을 쓰고 나머지를 쓰면 04 즉, 4가 된다

(진법 계산을 while문으로 만들 때 while(몫 != 0) 이런식으로 만들게 되는데 0이 되면 반복문을 종료하게 되니 4가 되는거다)

 

그래서 진법 계산을 할 때 몫 변수를 3으로 나누고 나머지가 0이되면 몫에 3을 나누고 1을 빼주는 것이었다

 

if문 써도 되는데 질문하기에 어떤 사람이 배열로 진법 자리를 정하길래 좋아보여서 따라해봤다 ㅋㅋㅋ

 

 


소스 코드

#include <string>
using namespace std;

string solution(int n) {
    string answer = "";
    string arr[] = {"4", "1", "2"};
    
    while(n != 0) {
        answer = arr[n%3] + answer;
        n = (n%3==0) ? (n/3)-1 : n/3;
    }
    
    return answer;
}
저작자표시 (새창열림)

'정리 전 게시글 > 공부 관련' 카테고리의 다른 글

startActivity(intent); 팅김 오류 해결법  (0) 2022.07.28
[프로그래머스 Level 1, C] 직사각형 별찍기  (0) 2022.07.27
[프로그래머스 Level 2, C++] 숫자의 표현  (0) 2022.07.26
[프로그래머스 Level 2, C++] 다음 큰 숫자  (0) 2022.07.26
[프로그래머스 Level 2, C++] 최솟값 만들기  (0) 2022.07.14
'정리 전 게시글/공부 관련' 카테고리의 다른 글
  • startActivity(intent); 팅김 오류 해결법
  • [프로그래머스 Level 1, C] 직사각형 별찍기
  • [프로그래머스 Level 2, C++] 숫자의 표현
  • [프로그래머스 Level 2, C++] 다음 큰 숫자
aptenia
aptenia
공부하면서 배운 것들
  • aptenia
    새벽의 아이디어
    aptenia
  • 전체
    오늘
    어제
    • 분류 전체보기 (279)
      • 논문 (0)
      • Roboracer (2)
      • 개발 아무거나 (1)
      • 일상 아무거나 (2)
      • 정리 전 게시글 (268)
        • 개발 관련 (25)
        • 정보 관련 (19)
        • 공부 관련 (224)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 네이버 블로그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    마인크래프트스크립트
    파이어베이스
    캡스톤디자인
    자바
    프로그래머스PCCE
    이것이자바다확인문제
    이것이자바다
    공개SW개발자대회
    마인크래프트
    컨텍스트스위칭
    파이썬
    C언어강좌
    티스토리반응형2스킨편집
    마크
    이것이자바다연습문제
    스크롤바CSS
    반복하지않는수
    티스토리스킨편집
    프로그래머스
    티스토리HTML
    백준
    C++강좌
    일본규슈공업대학교
    빅데이터공모전
    c언어초보
    콜라츠추측
    마인크래프트강화스크립트
    마크스크립트
    안드로이드
    C언어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
aptenia
[프로그래머스 Level 2, C++] 124 나라의 숫자
상단으로

티스토리툴바