일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 백준위
- 신문스크랩
- SSAFYcial
- it 뉴스
- 네트워크 관리사 2급 실기
- 우테코
- 카카오
- IT 동향
- html
- 코테
- 인앱결제
- 프로그래머스
- Java
- python
- 구글
- KT
- 리얼클래스
- 코딩테스트
- SSAFY
- 싸피
- IT 트렌드
- 싸피셜
- java 객체지향 프로그래밍
- it 이슈
- 코딩테스트 연습
- 백준
- 네트워크 관리사 2급
- SSAFY 7기
- 신문 스크랩
- 네트워크 관리사
Archives
- Today
- Total
개발자일걸요..?
124 나라의 숫자 본문
728x90
반응형
링크 : https://programmers.co.kr/learn/courses/30/lessons/12899
코딩테스트 연습 - 124 나라의 숫자
programmers.co.kr
(프로그래머스>코딩테스트 연습>연습문제>124 나라의 숫자)
<문제>
124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.
- 124 나라에는 자연수만 존재합니다.
- 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이하의 자연수 입니다.
<내가 작성한 코드>
def solution(n):
start=1
length = 1
while True:
if start>n:
length -= 1
start-=3**length
break
else:
start +=(3**length)
length+=1
c = ['1','2','4']
difference = n-start
difference_3 = []
while difference>0:
difference_3.append(int(difference%3))
difference//=3
while len(difference_3)<length:
difference_3.append(0)
difference_3.reverse()
answer=""
for i in range(len(difference_3)):
answer+=c[difference_3[i]]
return answer
<다른 사람의 코드를 참고하여 작성한 코드>
def solution(n):
num = ['1','2','4']
answer = []
while n>0:
n-=1
answer+=num[n%3]
n//=3
answer.reverse()
return ''.join(answer)
(index는 0부터 시작하기 때문에 while문 시작에서 n-=1을 해준것임.)
반응형
'알고리즘코딩 > Programmers' 카테고리의 다른 글
오픈채팅방 (0) | 2021.08.12 |
---|---|
튜플 (0) | 2021.08.11 |
프린터 (0) | 2021.08.08 |
JadenCase 문자열 만들기 (0) | 2021.08.06 |
[1차]뉴스 클러스터링 (0) | 2021.08.05 |
Comments