반응형
문제출처: https://programmers.co.kr/learn/courses/30/lessons/12899
코딩테스트 연습 - 124 나라의 숫자
programmers.co.kr
해당 문제를 해결하기 위해 많은 시간을 투자했지만,
쉽사리 문제해결 및 효율적인 코드를 작성하는데 있어서 어려움을 겪었습니다.
결국 다른 분의 코드를 참고해서 매우 쉽게 해결할 수 있었던 문제였습니다..
124나라의 진법? 규칙은 3진법과 매우 흡사하지만 3으로 나누어떨어질때
즉 3진법에서 0이 포함될 경우에만 값이 다르게됩니다.
그 이유는 무엇일까요?
3진법은 0의 표현이 있지만 124나라는 0의 표현이 없기 때문에 발생하는 아주 간단한 문제였습니다.
따라서 코드를 효율적으로 작성하기위해 3진법을 이용하면서 3으로 나누어 떨어질 때
몫을 1만큼 줄이고, 나머지는 4로 만들면 124나라의 규칙과 같게 적용할 수 있습니다.
<코드>
class Solution {
public String solution(int n) {
String answer = "";
int n2 = n;
while(true) {
int value = n2 / 3;
int remain = n2 % 3;
if(remain == 0) { // 3으로 나누어떨어질때
value--; // 몫은 1만큼 감소
remain = 4; // 나머지는 4로고정
answer = Integer.toString(remain) + answer; // 출력위치를 역순으로
} else if(remain == 1) {
answer = Integer.toString(remain) + answer;
} else if(remain == 2) {
answer = Integer.toString(remain) + answer;
}
n2 = value;
if(n2 == 0) break;
}
return answer;
}
}
해설참조: https://minnnne.tistory.com/66
프로그래머스 - 124 나라의 숫자(Level 2)/Wanna Be 컴잘알
문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12899 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이..
minnnne.tistory.com
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 / Java] N으로 표현 (0) | 2023.04.13 |
---|---|
[프로그래머스 / Java] 조이스틱 (0) | 2023.04.07 |
[알고리즘 / 프로그래머스 / Java] 메뉴 리뉴얼 (2021 KAKAO BLIND RECRUITMENT) (0) | 2021.10.04 |
[알고리즘 / 프로그래머스 / Java] 완주하지 못한 선수 (0) | 2021.09.01 |