YD_S 개발로그
article thumbnail
Published 2023. 6. 23. 15:53
백준 2745번 - 진법 변환 알고리즘

1. 문제

백준 2745번

 

2. 접근방법

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

 

ASCII 코드 표

 

3. 정답

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()
}
view raw baek_2745.kt hosted with ❤ by GitHub

 


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
profile

YD_S 개발로그

@YD_S

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!