데이터사이언스 기록기📚

[프로그래머스/Python] Level 2_[3차] n진수 게임 (2018 KAKAO BLIND RECRUITMENT) 본문

Coding Test/프로그래머스(Python)

[프로그래머스/Python] Level 2_[3차] n진수 게임 (2018 KAKAO BLIND RECRUITMENT)

syunze 2023. 10. 13. 15:35

📌문제 유형

2018 KAKAO BLIND RECRUITMENT

 

📌문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

📌나의 문제풀이

- convert에서 진수 변환 함수 만들어서 변환

- t(미리 구할 숫자의 개수) * m(게임에 참가하는 인원) 만큼만 games 길이 반복

- p의 맞는 순서만 선정해서 answer에 저장 

import string

def convert(num, base) :
    tmp = string.digits+string.ascii_uppercase
    q, r = divmod(num, base)
    
    if q == 0 :
        return tmp[r] 
    else :
        return convert(q, base) + tmp[r]


def solution(n, t, m, p):
    answer = ''
    games = ''
    num = 0
    
    while True:
        if len(games) > t*m:
            break
        now_num = convert(num,n)
        games += str(now_num)
        num += 1
    
    for i in range(len(games)):
        if i % m == p-1:
            answer += games[i]
            if len(answer) == t:
                break
    return answer

 

📌다른 사람의 문제풀이

big = ["A","B","C","D","E","F"]
def solution(n, t, m, p):
    a="0"
    i=0
    #for i in range(t*m):
    while True:
        if len(a)>=t*m:
            break
        b=""
        j=i
        while (j):
            if j%n>9:
                b=big[j%n-10]+b
            else:
                b=str(j%n)+b
            j=j//n
        a=a+b
        i=i+1
    answer = a[p-1::m][:t]
    return answer

 

📌리뷰

- 진법 변환 함수 가져와서 사용

 

[Python] 진법 변환 총 정리?!

[Pyhton 진법 변환] n진수 → 10진수 python에서는 기본적으로 int() 라는 함수를 지원합니다. int(string, base) 위와 같은 형식으로 사용하면 됩니다. base에는 진법을 넣으면 됩니다. print(int('111',2)) print(int

security-nanglam.tistory.com

 

 

[Python] 진수 변환

[Python] 진수 변환 코딩테스트 문제들을 풀다보면 진수 변환을 하는 문제가 자주 등장한다. 오늘은 진수 변환을 하는 방법 2가지를 소개한다. 10 진수 -> n 진수 10진수를 n 진수로 바꾸는 것은 학생

joyjangs.tistory.com

def convert(num, base) :
    tmp = string.digits+string.ascii_uppercase	# 십진수 모두 출력 + 영어 대문자 출력
    q, r = divmod(num, base)	# (몫,나머지)가 출력되도록
    
    if q == 0 :
        return tmp[r] # n진수로 나타낼 수 있음
    else :
        return convert(q, base) + tmp[r]	# q == 0이 될때까지 반복. 가장 먼저 계산된 나머지는 맨 끝에 저장
728x90
Comments