본문 바로가기
프로그래머스 Algorithm

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

by Echung 2023. 12. 4.

안녕하세요. 이번에는 프로그래머스 3진법 뒤집기 문제를 풀어보려고 합니다.

 

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

 

프로그래머스

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

programmers.co.kr


Problem

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해 주세요.

 

[제한 사항]

n은 1 이상 100,000,000 이하인 자연수입니다.

사진 1. 입출력 예

Solution

class Solution {
    fun solution(n: Int): Int {
        var str: String = ""
        var copyN: Int = n
        
        while(copyN > 0) {
            str += copyN % 3
            copyN /= 3
            
        }
        
        return str.toInt(3)
    }
}

 이번 문제는 while문을 사용해서 문제를 풀어보았습니다. 3으로 나눈 나머지를 str에 저장하여 toInt(3)을 활용해서 3진법을 10진법으로 나타냈습니다. 

 

1. 다른 사람 코드

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

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

  저의 코드와 다르게 1줄로 작성된 코드가 있어서 공부용으로 가져왔습니다. 코드를 한번 분석해 보겠습니다.

 

코드 분석

1. toString(3)을 통해서 3진법으로 만들어줍니다.

2. reversed()을 사용해서 3진법을 앞뒤 반전을 시켜줍니다.

3. toInt(3)을 사용해서 3진법을 10진법으로 만들어줍니다. 


Performance

1. 내가 작성한 코드 2. 다른 사람 코드

반응형