(Week1)[N진법] n진수 게임

2022. 6. 20. 15:10·알고리즘_코딩테스트/주간코딩 스터디 (주코스)

 

주간 코딩스터디 때 푼 문제들을 정리하고 있습니다. 구체적인 문제에 대한 정보는 게시글 내 링크를 살펴봐주세요

소요시간: 40분 

1. 문제 설명

https://programmers.co.kr/learn/courses/30/lessons/17687

 

코딩테스트 연습 - [3차] n진수 게임

N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0

programmers.co.kr

  1. 숫자를 0부터 시작해서 차례대로 말한다. 첫 번째 사람은 0, 두 번째 사람은 1, … 열 번째 사람은 9를 말한다.
  2. 10 이상의 숫자부터는 한 자리씩 끊어서 말한다. 즉 열한 번째 사람은 10의 첫 자리인 1, 열두 번째 사람은 둘째 자리인 0을 말한다.
  3. 이렇게 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
'알고리즘_코딩테스트/주간코딩 스터디 (주코스)' 카테고리의 다른 글
  • (Week3)[BFS] 타겟넘버
  • (Week2)[구현] 오픈채팅방
  • (Week2)[재귀] 하노이의 탑
  • (Week1)[Heap] 더 맵게
논곰
논곰
현재 2년 유목하고, 3년 이상 리테일 쪽에서 머신러닝 엔지니어로 잠시 정착 중인 AI 엔지니어입니다.
  • 논곰
    에이아이 유목민
    논곰
  • 전체
    오늘
    어제
    • 분류 전체보기 (200)
      • 기술 견문록 (22)
        • MLOps (8)
        • ProductServing (5)
        • 협업 툴 (3)
        • Error Collecting (2)
        • 컨퍼런스 (1)
        • 자격증 (1)
      • IT 견문록 (10)
        • 추가 학습 정리 (10)
      • 알고리즘_코딩테스트 (162)
        • 프로그래머스_Level1 (40)
        • 백준코딩테스트_단계별문제풀이 (14)
        • 이것이 코딩테스트다 (63)
        • 2021_알고리즘 스터디 (30일) (28)
        • 주간코딩 스터디 (주코스) (17)
      • 독서 견문록 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    글또
    python3
    백트랙킹
    Level1
    mrc
    파이썬 3
    그리디
    이진탐색
    MLFlow
    부스트캠프_AITech3기
    dp
    ODQA
    구현
    U_stage
    백준
    단계별문제풀이
    이코테
    정렬
    프로그래머스
    dfs
    알고리즘_스터디
    부스트캠프_AITech_3기
    Level2_PStage
    기술면접
    다시보기
    Level2
    주간회고
    최단경로
    그래프이론
    알고리즘스터디
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
논곰
(Week1)[N진법] n진수 게임
상단으로

티스토리툴바