반응형
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
- 싸피
- 진료과별 총 예약 횟수 출력하기
- MySQL
- softeer
- 퍼즐 조각 채우기
- 정기 코딩 인증평가
- 해결
- 티스토리챌린지
- 오블완
- 수료
- 백준
- PCCP
- 후기
- java
- 산 모양 타일링
- 핵심
- 배열 돌리기 5
- 142085
- 10기
- SSAFY
- 165672
- 59409
- 14942
- SQL
- 59412
- 설명
- 조건에 부합하는 중고거래 상태 구하기
- 프로그래머스
- 소프티어
- 146355
Archives
- Today
- Total
개발 쥬스
[프로그래머스/Java] 68935 3진법 뒤집기 본문
반응형
🔗 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/68935
🔍 해결 과정
일반 구현 문제로 다음과 같은 과정으로 문제를 해결하였습니다.
1️⃣ 주어진 정수 n을 3진법 형태의 문자열로 바꾼다. Integer의 toString() 메서드를 활용하였다.
2️⃣ 3진법으로 바꾼 문자열을 StringBuilder 객체를 활용하여 뒤집는다.
3️⃣ 뒤집은 문자열을 다시 10진법으로 바꿔준다. 이 때는 n의 최대값이 1억이므로 이를 3진법으로 바꾸어 정수값으로 표현하면 Long의 범위도 훨씬 넘어가기 때문에 직접 바꿔준다.
✏️ 코드
import java.util.*;
class Solution {
public int solution(int n) {
int answer = 0;
// Integer.toString() 을 활용하여 주어진 진법으로 값을 표현하기
String convertN = Integer.toString(n, 3);
// 앞뒤 반전하기
String reverseN = new StringBuilder(convertN).reverse().toString();
// 다시 10진법으로 표현하기 -> 직접 만들기
answer = convert3To10(reverseN);
return answer;
}
private int convert3To10(String n) {
int len = n.length();
int result = 0;
for (int i = 0; i < len; ++i) {
result += (n.charAt(i) - '0') * (int) Math.pow(3, len - 1 - i);
}
return result;
}
}
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스/sql] 165672 조건에 부합하는 중고거래 상태 구하기 (1) | 2024.11.27 |
---|---|
[프로그래머스/Java] 12973 짝지어 제거하기 (0) | 2024.11.26 |
[프로그래머스/sql] 59412 입양 시각 구하기(1) (0) | 2024.11.22 |
[프로그래머스/Java] 147355 크기가 작은 부분 문자열 (0) | 2024.11.21 |
[프로그래머스/sql] 59409 중성화 여부 파악하기 (0) | 2024.11.21 |