티스토리 뷰

1. 문제

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

 

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

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

programmers.co.kr

 

2. 설명

몇진법일지 모르기 때문에 따로 구하는 함수를 구현함.

게임에서 진행되는 숫자를 구하고 튜브가 말해야 하는 숫자를 구했다.

 

3. 코드

class Solution {
    public String solution(int n, int t, int m, int p) {
        String answer = "";
        StringBuilder sb = new StringBuilder();
        // 게임
        int i = 1;
        sb.append(0);
        while(sb.length()<m*t) {
            sb.append(notation(i++,n));
        }
        // 튜브가 말해야 하는 숫자
        for(int j=p-1; j<m*(t-1)+p; j+=m) {
            answer += sb.charAt(j);
        }
        return answer;
    }
    
    // 진법 변환
    String notation(int num, int n) {
        String nStr = "";
        while(num!=0) {
            if(num%n<10)
                nStr = num%n + nStr;
            else // 10진수 이상 알파벳 저장
                nStr = String.valueOf((char)(num%n + 55)) + nStr;
            num /= n;
        }
        return nStr;
    }
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday