Uknow's Lab.
article thumbnail

https://www.acmicpc.net/problem/11179

 

11179번: 2진수 뒤집기

희연이는 스웨덴으로 이사하여 현재 학교를 다니고 있다. 1학년 교육과정은 중국에서 배웠고, 스웨덴과 중국 두 나라의 교육과정은 완전히 다르다. 희연이는 수학을 좋아한다. 하지만 지금은.

www.acmicpc.net

 

난이도 : 브론즈 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진수 정수로 변환할 수 있습니다.

 

 

후기

코틀린과 자바에서 기본적으로 제공하는 메소드를 사용하면 꽤나 간단하게 풀 수 있습니다.

직접 구현하는 것도 매우 바람직하다 생각하지만,

실제 코딩테스트를 본다면 한정된 시간 안에 빠르고 정확하게 문제를 풀어야 하므로

기본적으로 제공하는 메소드들을 잘 활용하는 것도 필요하다 생각합니다.

profile

Uknow's Lab.

@유노 Uknow

인생은 Byte와 Double 사이 Char다. 아무말이나 해봤습니다.