모 회사의 코테시험을 보는중, 문제가 잘 안풀려서 혼자 기억을 더듬고 풀어보았다.
문제 내용은,
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]
정답여부는 알 수 없지만, 이를 통해 규칙성을 찾는 연습을 더 해야겠다고 생각이 들었다ㅠㅠ
'Algorithm > programmers' 카테고리의 다른 글
| [파이썬]programmers: 전화번호 목록 (0) | 2023.01.15 |
|---|---|
| [파이썬]programmers: 거리두기 확인하기 (0) | 2022.12.26 |
| [파이썬]progammers: 모음사전 (1) | 2022.12.10 |
| [파이썬]programmers: 땅따먹기 (0) | 2022.12.09 |
| [파이썬]programmers: 주식가격 (1) | 2022.12.09 |
댓글