(Java) 프로그래머스 - n진수 게임

2022. 9. 19. 20:20·코딩 테스트

입력값으로 들어오는 변수가 4개나 되어서 문제를 잘 읽어야 했다.

t값이 잘 이해가 안되었는데 정리하면 튜브가 몇번을 말해야 하는지? 가 t값이다.

입력값의 크기가 그리 크지 않아서 시간초과가 날 일은 없다고 생각해서 편하게 풀었다.

 

로직은 십진법의 번호를 n진수로 변환하여 배열로 만든다.

그리고 배열의 크기만큼 순환하며 순서에 맞는 번호를 StringBuilder에 추가한다.

만약 배열 순환중 StringBuilder의 크기가 t와 같아지면 탐색을 즉시 중단한다.

마지막으로 만들어진 StringBuilder를 String으로 변환후 대문자로 만들어준다.


최종 코드

class Solution {
    public String solution(int n, int t, int m, int p) {
        String answer = "";
        StringBuilder sb = new StringBuilder();

        // 십진법 번호
        int num = 0;
        // 말해야 하는 순서
        int order = 1;
        
        // 탐색 시작
        while (sb.length() < t) {
            // 번호를 n진수로 변환후 배열로 만들기
            String[] temp = Integer.toString(num++, n).split("");
            // 배열을 돌면서 순서에 맞게 StringBuilder에 추가
            for (int i = 0; i < temp.length; i++) {
                // 순서가 맴버수보다 커지면 1번으로 초기화
                if(order > m) {
                    order = 1;
                }
                // 순서에 맞는 번호라면 StringBuilder에 추가
                if(order == p) {
                    sb.append(temp[i]);
                }
                // StringBuilder의 크기가 t와 같다면 즉시 탐색종료
                if(sb.length() == t) {
                    break;
                }
                // 순서 증가
                order++;
            }
        }
        
        // StringBuilder를 String으로 변환후 대문자 변환
        answer = sb.toString().toUpperCase();
        return answer;
    }
}
저작자표시

'코딩 테스트' 카테고리의 다른 글

(Java) 프로그래머스 - 쿼드 압축 후 개수 세기  (0) 2022.09.23
(Java) 프로그래머스 - 방문 길이  (1) 2022.09.21
(Java) 프로그래머스 - 압축  (0) 2022.09.17
(Java) 프로그래머스 - n^2 배열 자르기  (0) 2022.09.15
(Java) 프로그래머스 - 점프와 순간 이동  (0) 2022.09.11
'코딩 테스트' 카테고리의 다른 글
  • (Java) 프로그래머스 - 쿼드 압축 후 개수 세기
  • (Java) 프로그래머스 - 방문 길이
  • (Java) 프로그래머스 - 압축
  • (Java) 프로그래머스 - n^2 배열 자르기
로승리
로승리
  • 로승리
    Roy's Blog
    로승리
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Issuefy
      • Language
      • Spring
      • Database
      • Network
      • Kubernetes
      • AWS
      • 코드스쿼드
      • 코딩 테스트
      • 생각정리
      • 국비지원
      • 회고
      • 컨퍼런스, 세미나
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
로승리
(Java) 프로그래머스 - n진수 게임
상단으로

티스토리툴바