-
[프로그래머스] 124나라의숫자 (python)개발/알고리즘 2022. 8. 30. 21:42
https://school.programmers.co.kr/learn/courses/30/lessons/12899
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
십진법 숫자를 1, 2, 4 를 이용해서
1 => 1
2 => 2
3 => 4
4 => 11
5 => 12
6 => 14
7 => 21
와 같이 변형시키는 문제이다.
3진법과 비교시 아래와 같다.
3진법 : 01 02 10
124 나라 : 1 2 4
3진법 : 11 12 20
124 나라 : 11 12 14
매 자리수를 구하는 방식은 주어진 수 n을 3으로 나눈 나머지가 0이면 4, 1이면 1, 2이면 2로 나타내지만,
그 다음 n을 구할 때, 3진법에서는 n//= 3 을하지만, 여기서는 3진법으로 치면 11 12 20의 앞자리가 모두 1이 되어야 하므로, n에서 1을 빼고 n//3을 해줘야 한다.
def solution(n): answer = '' # 3으로 나눠서 나머지가 0이면 4, 1이면 1, 2면 2를 반복! while n > 0 : # 나머지에 따라서 숫자가 아래처럼 결정됨 if n%3 == 0: answer = '4' + answer elif n%3 == 1: answer = '1' + answer elif n%3 == 2: answer = '2' + answer n -= 1 n//=3 return answer'개발 > 알고리즘' 카테고리의 다른 글
[백준] 2302 극장좌석 (python) (0) 2022.09.02 [백준] 16194 카드구매하기2 (python) (0) 2022.08.31 [백준] 1406 에디터 (python) (0) 2022.08.29 [백준] 1850 최대공약수 (python) (0) 2022.08.24 [백준] 1182 부분수열의 합 (python) (0) 2022.08.22