[Java] Lv.2 N진수 게임

2023. 6. 24. 22:14·Algorithms(CT)/Programmers

프로그래머스 - [3차] N진수 게임

 

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

 

프로그래머스

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

programmers.co.kr

 

문제 설명

입력 형식

진법 n, 미리 구할 숫자의 개수 t, 게임에 참가하는 인원 m, 튜브의 순서 p가 주어진다.

  • 2 ≤ n ≤ 16
  • 0 < t ≤ 1000
  • 2 ≤ m ≤ 100
  • 1 ≤ p ≤ m

출력 형식

튜브가 말해야 하는 숫자 t개를 공백 없이 차례대로 나타낸 문자열. 단, 10~15는 각각 대문자 A~F로 출력한다.


💡 아이디어

  • p번째 사람이 t번 말할 수 있을 때까지 전체 숫자를 구해서, p번째 사람의 숫자를 뽑아내는 방식으로 풀어보았습니다.

 

📖 풀이 과정

1.  p번째 사람이 t번 말할 수 있을 길이가 될 때까지 0부터 차례로 n진수로 바꿔 한 글자씩 전체 문자열에 넣습니다.

 String total="";

//전체 문자열 길이를 (p가 t번 말할 수 있을 때)까지 구한다
// ex - (2,4,2,1)
// 0*, 1, 1*, 0, 1*, 1, 1*, 0, 0 -> *은 p번째 사람이 말한 숫자
while(total.length()<p+m*(t-1)){
	total+=Integer.toString(num++,n).toUpperCase(); //num을 n진법으로 나타내 string에 저장.
}

2. 전체 문자열에서 p번째 말하는 사람의 문자열을 t개 만큼 뽑아서 answer에 추가합니다.

int Idx=p-1;//현재 인덱스

for(int i=0;i<t;i++) answer+=total.charAt(Idx+i*m);

3. 저장해둔 answer문자열을 return 합니다.


전체 코드

class Solution {
    static int num=0;
    public String solution(int n, int t, int m, int p) {
        String answer = "";
        
        String total="";
        
        //전체 문자열 길이를 (p가 t번 말할 수 있을 때)까지 구한다
        // ex - (2,4,2,1)
        // 0*, 1, 1*, 0, 1*, 1, 1*, 0, 0 -> *은 p번째 사람이 말한 숫자
        while(total.length()<p+m*(t-1)){
            total+=Integer.toString(num++,n).toUpperCase(); //num을 n진법으로 나타내 string에 저장.
        }
        
        int Idx=p-1;//현재 인덱스
        for(int i=0;i<t;i++)
            answer+=total.charAt(Idx+i*m);
        
        return answer;
    }
}

'Algorithms(CT) > Programmers' 카테고리의 다른 글

[프로그래머스] Lv.3 순위 (Java)  (0) 2023.06.27
[프로그래머스] Lv.4 징검다리 (Java)  (0) 2023.06.26
[프로그래머스][Java] Lv.2 k진수에서 소수 개수 구하기  (0) 2023.06.22
[프로그래머스] Lv2. 뉴스 클러스터링 (Java)  (0) 2023.06.21
[프로그래머스] Lv.2 n^2 배열 자르기 (Java)  (0) 2023.06.19
'Algorithms(CT)/Programmers' 카테고리의 다른 글
  • [프로그래머스] Lv.3 순위 (Java)
  • [프로그래머스] Lv.4 징검다리 (Java)
  • [프로그래머스][Java] Lv.2 k진수에서 소수 개수 구하기
  • [프로그래머스] Lv2. 뉴스 클러스터링 (Java)
gwee_99
gwee_99
bE bETTER!
  • gwee_99
    얼렁이와 뚱땅이
    gwee_99
  • 전체
    오늘
    어제
    • ====Category====
      • Algorithms(CT)
        • Programmers
        • Baekjoon
        • Goorm
      • Web
        • Error 해결
      • BackEnd
        • Spring
        • JPA
      • FrontEnd
        • HTML.CSS
        • JavaScript
      • Language
        • Java
      • Cloud
      • CSTS
      • Books
        • IT 5분 잡학사전
      • 일상
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    lv2
    스택
    Greedy
    lv.4
    구름
    백준
    프로그래머스
    DP
    DFS
    LV.3
    BOJ
    IT 5분 잡학사전
    Til
    HTML
    구름톤 챌린지
    따라하며 배우는 html css
    개발자북클럽
    그리디
    인프런
    존안님
    코딩테스트
    IT 잡학사전
    자바
    Lv.1
    노마드코더
    호텔 대실
    제대로 파는 자바스크립트
    LV.2
    java
    BFS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
gwee_99
[Java] Lv.2 N진수 게임
상단으로

티스토리툴바