(코딩테스트)3진법 뒤집기(진법 변환)

2024. 3. 26. 18:15개발자 과정/Kotlin

https://school.programmers.co.kr/learn/courses/30/lessons/68935

 

프로그래머스

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

programmers.co.kr

 

풀이의 선택과정

1. 진수변환은 쓸일이 별로 없어 방법을 까먹었다.

2. 하지만 이건 코틀린이잖아..? 뭔가 변환 기능이 있을거 같다.

3. 그것이 지원되면 코드가 획기적으로 줄어들 것이니 그렇게 풀어보자.

 

문제고민

진법을 변환하는 함수는 어떤 것일까?

 

해결방안

toInt(),toString() 매개변수에 변환하고 싶은 진법을 넣는다.

그럼 문제가 너무나도 쉬워진다.

 

정답풀이

class Solution {
    fun solution(n: Int)=n.toString(3).reversed().toInt(3)
}

 

핵심로직

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

1. 3진법으로 변환된 값을 string타입으로 바꾼다.

2. 문자열을 뒤집는다. 

3. 다시 3진법을 먹여 원하는 값을 뽑는다.

 

새로 알게된 것

진수변환 할땐 형변환 함수를 쓰자

점점 코틀린의 함수기능에 감화되어 간다.

나중엔 얼마나 더 쓰기 편한 언어가 나올까?