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 |
Tags
- katalon xpath
- oracle group by
- 최대공약수 예제
- 피보나치 예제
- tomcat log
- javascript 자동완성
- 피보나치함수 예제
- katalon
- 주식 양도세 신고방법
- 해외주식 양도세 신고
- katalon 자동화
- katalon 비교
- recursion example
- 재귀함수 예제
- 한국투자증권 양도세 신고
- 피보나치함수
- katalon 사용법
- 한국투자증권 해외주식 양도세
- java.sql.SQLSyntaxErrorException
- 테스트 자동화
- 국세청 해외주식 양도세 신고방식
- 재귀 예제
- 해외증권 양도세 한국투자증권
- git 연동
- Katalon Recorder 사용법
- 톰캣 실시간 로그
- CSTS 폭포수 모델
- js 자동완성
- 홈택스 해외주식 양도세
- bfs 미로탐색 java
Archives
- Today
- Total
엄지월드
백준 11576 Base Conversion 본문
문제
설명
마지막 줄에 주어진 A진수를 B진수로 출력하는 문제였다.
그렇게 하기 위해서 A진수를 10진수로 변경하고, 10진수를 B진수로 변경하도록 처리했다.
가독성을 위해 처리 단위로 메소드로 뺏다.
소스
package Baekjoon;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class BOK_11576 {
// 11576 Base Conversion
public static void main(String[] args) throws IOException {
process();
}
private static void process() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
long A = Long.parseLong(st.nextToken());
long B = Long.parseLong(st.nextToken());
int m = Integer.parseInt(br.readLine());
int[] arr = new int[m];
st = new StringTokenizer(br.readLine());
// A넘버를 10진수로 치환
long decimalNumber = getAtoDecimal(m, arr, st, A);
// 10진수를 B넘버로 치환
StringBuilder result = getToBNumber(decimalNumber, B);
bw.write(result.toString());
bw.flush();
bw.close();
}
private static StringBuilder getToBNumber(long decimalNumber, long B) {
// A넘버를 10진수로 치환
StringBuilder result = new StringBuilder();
while(decimalNumber > 0) {
long remainder = decimalNumber % B;
result.insert(0, remainder +" ");
decimalNumber /= B;
}
return result;
}
private static long getAtoDecimal(int m, int[] arr, StringTokenizer st, long A) {
// 10진수를 B넘버로 치환
long decimalNumber = 0;
for (int i = 0; i < m; i++) {
arr[i] = Integer.parseInt(st.nextToken());
double pow = Math.pow(A, m - i -1);
double v = arr[i] * pow;
decimalNumber += (long)v;
}
return decimalNumber;
}
}
'알고리즘' 카테고리의 다른 글
백준 2635 수 이어가기 (0) | 2024.07.09 |
---|---|
백준 9625 BABBA (0) | 2024.07.08 |
백준 4158 CD (0) | 2024.06.25 |
백준 15904 UCPC는 무엇의 약자일까? (0) | 2024.05.13 |
백준 4659 비밀번호 발음하기 (0) | 2024.05.09 |
Comments