1. 문제

2. 접근방법
- 수 N을 CharArray로 받은 후 배열의 순서를 역으로 돌린다.
- 10진법 이상을 경우 CharArray의 원소가 ASCII 코드 값 65('A') 이상일 경우 원소 값을 ASCII 코드로 변환 후 55를 빼준다.
- pow함수를 이용해 N제곱을 하여 각 계산된 값을 더해준다.
ASCII 코드 표

3. 정답
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.io.BufferedReader | |
import java.io.BufferedWriter | |
import java.io.InputStreamReader | |
import java.io.OutputStreamWriter | |
import java.util.StringTokenizer | |
import kotlin.math.pow | |
fun main() { | |
val br = BufferedReader(InputStreamReader(System.`in`)) | |
val bw = BufferedWriter(OutputStreamWriter(System.out)) | |
val token = StringTokenizer(br.readLine()) | |
val digit = token.nextToken().toCharArray() | |
val number = token.nextToken().toInt() | |
digit.reverse() | |
var result = 0.0 | |
for(i in digit.indices) { | |
result += if (number > 10 && digit[i].code >= 65) { | |
(digit[i].code - 55) * (number.toDouble().pow(i)) | |
}else{ | |
digit[i].digitToInt() *(number.toDouble().pow(i)) | |
} | |
} | |
bw.write("${result.toInt()}") | |
bw.flush() | |
bw.close() | |
} |
https://www.acmicpc.net/problem/2745
2745번: 진법 변환
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
'알고리즘' 카테고리의 다른 글
백준 2292번 - 벌집 (0) | 2023.06.23 |
---|---|
백준 2563번 - 색종이 (0) | 2023.06.23 |
백준 1316번 - 그룹 단어 체커 (0) | 2023.06.22 |
백준 15552번 - 빠른 A+B (0) | 2023.06.20 |
백준 11382번 - 꼬마 정민 (0) | 2023.06.19 |