본문 바로가기
  • 개발하는 곰돌이
Algorithm/BOJ

[Kotlin] 백준 1094 : 막대기

by 개발하는 곰돌이 2022. 11. 23.

문제 링크

 

1094번: 막대기

지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대

www.acmicpc.net



문제 해설

간단한 비트마스킹 문제다. 지문을 보면 64에서 반복적으로 연산을 진행하여 더한 횟수를 구해야할 것 같지만 문제의 조건을 보면 시작하는 막대 길이가 64(26)cm라는 점이 명시되어 있다. 즉, 이전 막대를 반으로 나눈 새 막대는 모두 2의 거듭제곱수라는 사실을 알 수 있다. 다시 말해, 나눠진 각 막대는 2진수로 표현하면 모두 다른 자리에 1이 하나만 존재하므로 X를 2진수로 바꿨을 때 1의 개수가 곧 문제의 답이 된다.


Code

fun main() = print(readln().toInt().countOneBits())

'Algorithm > BOJ' 카테고리의 다른 글

[Kotlin] 백준 1064 : 평행사변형  (0) 2022.11.24
[Kotlin] 백준 1010 : 다리 놓기  (1) 2022.11.24
[Kotlin] 백준 1308 : D-Day  (0) 2022.11.23
[Kotlin] 백준 1251 : 단어 나누기  (0) 2022.11.23
[Kotlin] 백준 1181 : 단어 정렬  (0) 2022.11.22

댓글