반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- linebreak
- 비동기 처리
- flutter
- 자바
- 코틀린
- 에러
- zwj
- 알고리즘
- Lazy
- 초기화
- 거리알고리즘
- Java
- 자료구조
- Android
- dart
- 프리즈드
- Widget Tree
- Singleton
- 싱글톤
- 프로그래머스
- dfs
- 앱아이콘 변경
- 재귀
- element tree
- Render object tree
- Kotlin
- 완전탐색
- 플러터 동작
- IOS
- 플러터
Archives
- Today
- Total
모바일 개발하는 자바리안의 메모장
자바(JAVA) - 124 나라의 숫자(Programmers : 12899) 본문
반응형
https://programmers.co.kr/learn/courses/30/lessons/12899
처음 문제를 접했을때는 n진수 계산 방법으로 접근하면 되겠구나라고 생각했지만 쉽지가 않았다...
밤을 샐 것 같아, 고수님들의 솔루션을 통해 공통되지 않는 숫자 중 3을 나눴을 때의 값과 나머지를 이용하는 방법을 접하게 되었고,
추가로 나머지가 0일 경우 몫에서 1을 빼주며 계산을 반복하니 쉽계 답을 원하는 답을 얻을 수 있었다.
124나라에서의 두자리 숫자 24, 10진수로는 9의 풀이과정을 예로 보자.
1. 첫 셈에서 9을 3으로 나누면 몫이 3, 나머지가 0 > 나머지가 0이니 몫에서 1을 뺀 2를 다음 셈으로 가져간다.
2. 몫 2을 3으로 나누면 몫이 0, 나머지가 2
나머지가 결국 각 자리의 수가 된다. 마지막 셈을 시작으로 나머지가 1, 2일 경우는, 그리고 0일 경우 4로 대입해준다.
2번 셈에서 나머지가 2, 1번 셈에선 0이므로, 24라는 124나라 숫자를 구할 수 있다.
class Solution {
public String solution(int n) {
String[] numbers = {"4", "1", "2"};
String answer = "";
int num = n;
while(num > 0) {
int remaining = num % 3;
num /= 3;
if(remaining == 0) num--;
answer = numbers[remaining] + answer;
}
return answer;
}
}
반응형
'Java > Java.algorithm' 카테고리의 다른 글
자바(JAVA) - 메뉴 리뉴얼(Programmers : 72411) (0) | 2022.03.15 |
---|---|
자바(JAVA) - 단체사진 찍기(Programmers : 1835) (0) | 2022.03.13 |
자바(JAVA) - 짝지어 제거하기(Programmers : 12973) (0) | 2022.03.13 |
자바(JAVA) - 부분합(백준 : 1806) (1) | 2021.06.15 |
자바(JAVA) - 가사검색(Programmers : 60060) (0) | 2021.06.10 |
Comments