본문 바로가기

Algorithm/프로그래머스

프로그래머스 level2 문제 : 124나라(java)

반응형

문제 설명 : 


124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.

124 나라에는 자연수만 존재합니다.
124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.

자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요.


제한 조건 : 

1. n은 500,000,000이하의 자연수 입니다.



이 문제는 너무 어렵게 생각하다보니 시간이 오래 걸렸네요..


결국 답을 보고야...말았습니다 흑흑... 쉬운데 ㅠㅠ


풀이를 보면 아 진짜 너무 쉽구나 라고 느껴질겁니다!!! 확인해 볼까요?


public String solution(int n) {
String answer = "";
int reminder;

while(n>0){
reminder = n%3;
n = n/3;

if(reminder == 0){
n -= 1;
reminder = 4;
}

answer = reminder + answer;
}

return answer;
}


위가 끝입니다.


주어진 숫자 n의 나머지를 구합니다.


또, n을 계속 3으로 나누고, 그 몫을 대입합니다.


그렇게 나온 나머지가 만약에 0이다!! 그러면 이제 0을 넣는 것이 아닌, 1, 2, 4!!! 에서 4를 넣어야 합니다.


왜냐하면 123의 나라가 아닌 124의 나라이기 때문에 3으로 나눈 나머지가 3이 아닌 4가 되어야 하기 때문입니다. 


이해 가시나요??


예를 들면, n = 3 -> 나머지 0이지만, 124 나라에는 0이 존재하지 않습니다. 그렇기 때문에 0 대신 4를 넣어주는 것이지요!




그렇게 풀이를 해보면 위와 같은 식이 나옵니다.


잘 생각하고 풀자구요!! 전 오랜만에 풀어서 머리가 굳었네요..화이팅!

반응형