내가 생각했을때 문제에서 원하는부분
첫째 줄에 10진수 T(1 ≤ T ≤ 10,000)가 주어진다.
T를 9진수로 변환한 수를 출력한다.
내가 이 문제를 보고 생각해본 부분
BufferedReader를 통해 사용자로부터 10진수 T를 입력받는다.
StringBuilder를 준비하고, 입력받은 T를 decimalNumber 변수에 복사한다.
decimalNumber가 0이 될 때까지 반복적으로 9로 나누고, 그 나머지를 StringBuilder에 순서대로 추가한다.
이 과정에서 9진수의 각 자릿수가 역순으로 StringBuilder에 저장된다.
반복문이 끝나면 StringBuilder에 저장된 내용을 reverse() 메서드로 뒤집어 올바른 9진수 순서로 만든 후, toString() 메서드로 문자열로 변환하여 출력한다.
마지막으로 BufferedReader 자원을 닫는다.
코드로 구현
package baekjoon.baekjoon_29;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
// 백준 14491번 문제
public class Main1065 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine()); // 10진수 T 입력
StringBuilder sb = new StringBuilder();
int decimalNumber = T; // 입력받은 T를 변환에 사용
while(decimalNumber > 0) {
int remainder = decimalNumber % 9; // 9로 나눈 나머지
sb.append(remainder); // 나머지를 StringBuilder에 추가
decimalNumber /= 9; // 몫을 다음 계산에 사용
}
System.out.println(sb.reverse().toString());
br.close();
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.