Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 안드로이드
- DART
- aws
- 코테
- 다트
- 현대sw
- 개발
- 프로그래머스
- VSCode
- 알고리즘
- softeer
- Python
- programers
- 머신러닝
- Flutter
- 소프티어
- MVVM
- Android
- 파이썬
- GDSC
- java
- baekjoon
- SWIFT
- 자바
- 플러터
- 코틀린
- kotlin
- 백준
- 스위프트
- 아마존 웹 서비스
Archives
- Today
- Total
조준장 개발자 생존기
[programers] 프로그래머스 카카오(파이썬) : [3차] n진수 게임 본문
문제
코딩테스트 연습 - [3차] n진수 게임
N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0
programmers.co.kr
알고리즘
- 반복문을 통해 모든 인원이 미리 구해야 하는 숫자를 n진수로 변환한다.
- while문을 통해 i를 n진수로 변환하고 변환한 수를 data에서 뽑아 temp에 추가한다.
- 변환한 진수는 reversed를 통해 거꾸로 바꿔야 비로소 우리가 원하는 진수가 된다.
- 변환한 진수는 answer에 더하고 필요한 수만큼 나눠 리턴한다.
코드
def solution(n, t, m, p):
answer = '0'
data = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"]
# 반복문을 통해 모든 인원이 미리 구해야하는 숫자를 n진수로 변환한다.
for i in range(1, t * m):
temp = []
# i를 n진수로 변환
while i > 0:
i, mod = divmod(i, n)
temp.append(data[mod]) # 변환한 수를 data에서 뽑아 temp에 추가
# reversed를 통해 변환한 진수를 answer에 더한다.
answer += "".join(reversed(temp))
# 0을 포함해야하기 때문에 p-1부터 t*m까지 m번씩 나눈 수를 리턴
return answer[p-1: t * m: m]
# print(solution(16,16,2,1)) # 예시 코드
github
GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com
'CodingTest > Programers' 카테고리의 다른 글
[programers] 프로그래머스(파이썬) : 소수 만들기 (0) | 2022.04.24 |
---|---|
[programers] 프로그래머스(파이썬) : 신고 결과 받기 (0) | 2022.04.23 |
[programers] 프로그래머스(파이썬) : 다단계 칫솔 판매 (0) | 2022.01.21 |
[programers] 프로그래머스 카카오(파이썬) : [1차] 다트 게임 (0) | 2022.01.14 |
[programers] 프로그래머스 카카오(파이썬) : [1차] 비밀지도 (0) | 2022.01.06 |