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
'Problem-Solving > BOJ' 카테고리의 다른 글
[BOJ/백준][Silver1] 16195 : 1,2,3 더하기 9 (C++) (0) | 2021.06.07 |
---|---|
[BOJ/백준][Silver1] 15992 : 1,2,3 더하기 7 (C++) (0) | 2021.06.07 |
[BOJ/백준][Silver1] 17087 : 숨바꼭질 6 (Kotlin) (0) | 2021.05.18 |
[BOJ/백준][Silver3] 9613 : GCD 합 (Kotlin) (0) | 2021.05.18 |
[BOJ/백준][Silver2] 2004 : 조합 0의 개수 (Kotlin)) (0) | 2021.05.18 |