반응형

 

문제 설명

124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.

  1. 124 나라에는 자연수만 존재합니다.
  2. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.

예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다.

10진법       124 나라      10진법       124 나라

1 1 6 14
2 2 7 21
3 4 8 22
4 11 9 24
5 12 10 41

자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요.

제한사항

  • n은 500,000,000이하의 자연수 입니다.

입출력 예

n              result

1 1
2 2
3 4
4 11

 

 

 

프로그래머스 LEVEL 2 문제 중에 10진수, 2진수 등

N진수에 관한 문제이다.

문제는 1,2,4 만으로 존재하는 3진수라고 생각하면 된다.

 

 

문제는 푸는 핵심은,

3으로 나눠서 0이 되는 부분에서는 몫의 -1을 취해주는 것이다.

 

정답 코드

def solution(n):
    answer = ''
    
    arr = [4,1,2]
    
    arr_str = ""
    i = 1
    
    while n:
        arr_str = str(arr[n%3]) + arr_str
        n = n//3 - (n%3 == 0)
           
    
        
    return arr_str

 

 

코딩테스트 대비 Python 강의

www.youtube.com/channel/UCYYao-BSPaetw7N2GFFJ-Yw?view_as=subscriber

 

Henry Joo

 

www.youtube.com

 

반응형
반응형

 

 

그렇게 복잡한 문제는 아니라고 생각했는데,

생각보다 시간을 많이 들인 것 같다.

 

그래도 차분하게 접근만 하면,

프로그래머스 Level 2정도도 금방 정복할 수 있을 것으로 예상!!

 

 

아래는 정답 코드이다.

def solution(skill, skill_trees):
    answer = 0
    arr = []
    
    for i in range(len(skill_trees)):
        check = 0
        check_ = 0
        for j in range(len(skill_trees[i])):
            if skill_trees[i][j] in skill:
                check_ += 1
                
            if skill_trees[i][j] == skill[check]:
                check += 1
                if check == len(skill):
                    break
                    
        if check_ == check:
            answer += 1
    
    return answer

 

 

혹시 코딩테스트가 어렵거나, 준비하는데 함께 공부하실 분들은

아래에 제가 올린 다양한 풀이 강의가 있으니 함께 공부해요~!!

 

https://www.youtube.com/channel/UCYYao-BSPaetw7N2GFFJ-Yw?view_as=subscriber

 

Henry Joo

 

www.youtube.com

 

반응형
반응형

 

오늘도 하루에 코딩 문제 3문제 풀기에 도전한다.

 

프로그래머스에 Level 1에 있는 문제들은 조금만 생각하면 풀 수 있는 수준인 것 같다.

 

그 중에 K번째수를 찾는 문제는 제일 쉬운 문제 중에 하나다.

 

문제를 푸는 목적을

자신이 할 수 있는 언어 문법을 공부한다고 생각하면 좋을 것 같다.

 

내가 푼 문제의 정답은 아래와 같다.

 

def solution(array, commands):
    answer = []
    
    for idx in range(len(commands)):
        i = commands[idx][0]
        j = commands[idx][1]
        k = commands[idx][2]
        answer.append(sorted(array[i-1:j])[k-1])
    
    return answer

 

코딩테스트 관련 문제들을 풀어놓은 강의를 하고 있다.

코딩테스트의 어려움이 있으신 분들은

다른 언어 대비 비교적 직관적이고 빠르게 배우기 쉬운 Python을 활용해서 연습을 해보면 좋을 것 같다.

 

https://www.youtube.com/channel/UCYYao-BSPaetw7N2GFFJ-Yw?view_as=subscriber

 

Henry Joo

 

www.youtube.com

 

반응형

+ Recent posts