https://www.acmicpc.net/problem/11179
난이도 : 브론즈 1
태그 : 수학, 구현, 문자열
설명
숫자 n을 2진수로 만들고,
2진수를 뒤집고,
2진수를 다시 10진수로 만드는 문제입니다.
조금 귀찮고 번거로운 문제로 보일 수 있지만...
자바/코틀린에서 기본적으로 제공하는 메소드를 잘 이용하면 쉽게 풀 수 있습니다.
소스코드
fun main() {
print((Integer.toBinaryString(readLine()!!.toInt())).reversed().toInt(2))
}
Integer.toBinaryString(int n)을 통해 10진수를 2진수로 변환하고,
reversed()를 통해 2진수로 변환한 문자열을 뒤집습니다.
마지막으로, toInt(2)를 통해 2진수를 10진수 정수로 변환할 수 있습니다.
후기
코틀린과 자바에서 기본적으로 제공하는 메소드를 사용하면 꽤나 간단하게 풀 수 있습니다.
직접 구현하는 것도 매우 바람직하다 생각하지만,
실제 코딩테스트를 본다면 한정된 시간 안에 빠르고 정확하게 문제를 풀어야 하므로
기본적으로 제공하는 메소드들을 잘 활용하는 것도 필요하다 생각합니다.
'코딩테스트 > Kotlin' 카테고리의 다른 글
[백준 24568번] [Kotlin] Cupcake Part (0) | 2023.01.31 |
---|---|
[백준 2468번] [Kotlin] 안전 영역 (0) | 2023.01.30 |
[백준 1004번] [Kotlin] 어린 왕자 (0) | 2023.01.29 |
[백준 1212번] [Kotlin] 8진수 2진수 (0) | 2023.01.26 |
[백준 2109번] [Kotlin] 순회강연 (0) | 2023.01.24 |