본문 바로가기

알고리즘/카카오 EASY

n진수 게임 (Level 2)

문제

 

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

 

프로그래머스

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

programmers.co.kr

 

내 풀이

 

숫자를 n진수로 바꿔주는 change 함수를 만들었다.

 

그리고 게임 전체를 시뮬레이션하는 코드를 만들었고, t*m번 시뮬레이션하도록 하였다.

 

마지막으로 cnt를 사용하여 정답이 될 숫자들을 answer에 저장하였다.

 

def solution(n, t, m, p):
    answer = ''
    
    dic = {10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F'}
    
    def change(num, d):
        if num == 0: return '0'
        ans = ''
        while num:
            mod = num % d
            if mod >= 10: ans += dic[mod]
            else: ans += str(mod)
            num //= d
        return ans[::-1]

    digit, temp = 0, ''
    while len(temp) <= t*m:
        temp += change(digit, n)
        digit += 1
    
    cnt = 1
    for a in temp:
        if cnt == p: answer += a
        cnt += 1
        if cnt > m: cnt = 1
        if len(answer) == t: break
        
    return answer

 

총평

 

그냥 풀었다. 후루루룩~

'알고리즘 > 카카오 EASY' 카테고리의 다른 글

k진수에서 소수 개수 구하기 (Level 2)  (0) 2022.07.26
주차 요금 계산 (Level 2)  (0) 2022.07.26
파일명 정렬 (Level 2)  (0) 2022.07.25
방금그곡 (Level 2)  (0) 2022.07.25
압축 (Level 2)  (0) 2022.07.25