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
- 글또
- 최단경로
- 프로그래머스
- 이진탐색
- 그래프이론
- 부스트캠프_AITech3기
- Level1
- 다시보기
- dfs
- python3
- 백준
- U_stage
- ODQA
- 개인회고
- 이코테
- Level2_PStage
- Level2
- 파이썬 3
- 알고리즘스터디
- mrc
- 단계별문제풀이
- dp
- 기술면접
- 정렬
- 구현
- 그리디
- 부스트캠프_AITech_3기
- 백트랙킹
- 주간회고
- 알고리즘_스터디
Archives
- Today
- Total
국문과 유목민
(Week1)[N진법] n진수 게임 본문

주간 코딩스터디 때 푼 문제들을 정리하고 있습니다. 구체적인 문제에 대한 정보는 게시글 내 링크를 살펴봐주세요
소요시간: 40분
1. 문제 설명
https://programmers.co.kr/learn/courses/30/lessons/17687
코딩테스트 연습 - [3차] n진수 게임
N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0
programmers.co.kr
- 숫자를 0부터 시작해서 차례대로 말한다. 첫 번째 사람은 0, 두 번째 사람은 1, … 열 번째 사람은 9를 말한다.
- 10 이상의 숫자부터는 한 자리씩 끊어서 말한다. 즉 열한 번째 사람은 10의 첫 자리인 1, 열두 번째 사람은 둘째 자리인 0을 말한다.
- 이렇게 16진법까지도 게임을 진행할 수 있게 프로그램을 만든다.
2. 접근 방식
- 미리 구할 숫자의 개수가 t개라면 총 m*t만큼의 수를 뽑아야 한다.
- 진법에 따라서 뽑아야 하는 숫자는 달라짐
- 뽑아야 하는 숫자는 n으로 나눈 값의 나머지로 결정. 단, 다음 수도 생각해야 하니 이중 for문
- 나머지 값이 10~15이면 A, B, C, D, E, F로
3. 코드
def solution(n, t, m, p):
## 진수 구분
num_ls = {}
alpha = "A, B, C, D, E, F".split(", ")
for i in range(16):
num_ls[i] = str(i)
for i,v in enumerate(range(10, 16)):
num_ls[v] = alpha[i]
# m*t까지만 숫자를 계산해도 됨
number = m*t
numbers = ""
for i in range(number):
tmp = []
while i >= n:
rem = i % n
i = i // n
tmp.append(num_ls[rem])
tmp.append(num_ls[i % n])
numbers += "".join(tmp[::-1])
# 조기 중지
if len(numbers) >= number:
break
# 코드 출력 완성
result = ""
for i in range(1, t+1):
ls = numbers[m*(i-1):m*i]
result += ls[p-1]
return result
4. 코멘트
- N진법 문제는 나머지와 몫의 관계만 잘 파악하면 쉽게 풀 수 있는 문제라고 생각한다. 첫 주에 오랜만에 푼 문제이다보니까 조금 헤매기는 했지만 그래도 수월하게 풀 수 있었던 것 같다.
'알고리즘_코딩테스트 > 주간코딩 스터디 (주코스)' 카테고리의 다른 글
(Week3)[구현] 순위검색 (0) | 2022.06.20 |
---|---|
(Week3)[BFS] 타겟넘버 (0) | 2022.06.20 |
(Week2)[구현] 오픈채팅방 (0) | 2022.06.20 |
(Week2)[재귀] 하노이의 탑 (0) | 2022.06.20 |
(Week1)[Heap] 더 맵게 (0) | 2022.06.20 |