Problem-Solving/BOJ
[BOJ/백준][Bronze2] 1373 : 2진수 8진수 (Kotlin)
has2
2021. 5. 18. 22:51
https://www.acmicpc.net/problem/1373
1373번: 2진수 8진수
첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다.
www.acmicpc.net
[난이도] Bronze2
[유형] 수학
[풀이]
2진수 문자열을 3개씩 나눠서 3개를 8진수의 한자리로 보고 변환해주면 0~7의 수로 바꿀 수 있다.
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() = with(BufferedReader(InputStreamReader(System.`in`))){
var n = readLine()
n = n.reversed()
val arr = listOf(1,2,4)
var ans=StringBuilder()
for(i in n.indices step 3){
var t=0
for(j in 0..2){
if(i+j>=n.length) break
t+=arr[j]*(n[i+j]-'0')
}
ans.append(t.toString())
}
println(ans.reverse())
}
https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Bronze2/1373.cpp