본문 바로가기

알고리즘

프로그래머스 3진법 뒤집기

코딩테스트 연습 - 3진법 뒤집기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

초기 코드

class Solution {
    fun solution(n: Int): Int {
        var answer: Int = 0
        return answer
    }
}

 

 

우선 진법이란,

위치값 기수법이라는 수의 표현법이다. 예를들어 우리가 보통 사용하는 10진법은 0~9까지 표현하고 9를 초과하는 정수가 나오면 10으로 자리를 하나 올려서 표현한다.

 

10진법으로 예시를 들어보자.

1234는 1000+200+30+4로 볼 수 있고 이를 Z = a(n) x^n + a(n-1) x^n-1 +...+a(1) x(1) + a(0) x(0) 으로 표현 할 수 있다고 한다. x는 2진법, 3진법...등의 진법을 나타낸다.

 

근데 여기서 어떻게 나타내야 할지도 감을 찾지 못해서 결국 구글링을 해서 찾아보았다...

 

class Solution {
    fun solution(n: Int): Int {

        return n.toString(3).reversed().toInt(3)
    }
}

 

 

어라 왜이리 짧지...?nomad diary라는 블로그에서 찾아볼 수 있었다.

일단 오늘 따로 코틀린 문법이나 기초 책을 찾아서 주문했다...3이란 단어로 묶어서 뒤집고 다시 3으로 나타내기? 내가 이해한것이 맞는지도 모호해서 설명이나 기초를 찾을 수 있는 책이 오면 예전 문제들도 확인해봐야겠다.