본문 바로가기
Algorithm/programmers

[파이썬]불행한 수

by 갈잃자 2022. 12. 12.

모 회사의 코테시험을 보는중, 문제가 잘 안풀려서 혼자 기억을 더듬고 풀어보았다.

 

문제 내용은,

 

4와 13을 가지고 만들수 있는 수가 있습니다. 이를 불행한 수 라고 정의하는데, 불행한 수를 오름차순으로 나열시키시오.

 

ex) S = {4, 13, 44, 134, 413, 444, 1313...}

 

대략 이런 문제로, N이 주어지면 N번째 숫자를 return하는 문제였던거같다.

 

위 문제를 풀기위해 내가 쓴 로직

적고 보니, 규칙성이 생겼다. 

 

이를 구현해낸 내용

def solution(n):
    arr = [4,13]
    cnt4 = 0
    cnt13 = 0
    st = 1
    while 1:
        for i in range(cnt4, cnt4+st):
            arr.append(str(arr[0]) + str(arr[i]))
            cnt4 +=1

        for j in range(cnt13, cnt13+st):
            arr.append(str(arr[1]) + str(arr[j]))
            cnt13 +=1
        st = 1
        st +=cnt4
        if len(arr) >= n:
            return arr[n-1]

정답여부는 알 수 없지만, 이를 통해 규칙성을 찾는 연습을 더 해야겠다고 생각이 들었다ㅠㅠ

댓글