[프로그래머스] n진수 게임 (JAVA)

개츠비·2023년 5월 17일
0

프로그래머스

목록 보기
14/16
post-custom-banner
  1. 소요시간 : 22분
  2. 문제 사이트 : 프로그래머스
  3. 문제 수준 : 레벨 2
  4. 문제 유형 : 브루트포스 알고리즘
  5. 다른 사람의 풀이를 참고 했는가 ? : X
  6. 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/17687
  7. 푼 날짜 : 2023.05.17

1. 사용한 자료구조 & 알고리즘

브루트포스 알고리즘을 사용했다.

2. 사고과정

2 ≦ n ≦ 16
0 < t ≦ 1000
2 ≦ m ≦ 100
1 ≦ p ≦ m
입력의 범위이다. 드는 생각은, 어떻게 해도 시간 초과가 안나겠다고 생각했다. 그래서 1부터 시작해서 모든 숫자를 N진수로 변환시키고, 그 각각을 1글자씩 끊어서 ArrayList에 담으면 문제를 해결할 수 있을 거라고 생각했다.

3. 풀이과정

  1. 1부터 모든 숫자를 N진수로 변환시켜서 ArrayList에 담는다.
  2. 내 차례는 p(1부터시작)번째이고, ArrayList의 인덱스는 0부터 시작이니, ArrayList의 p-1 번쨰 인덱스 값이 내가 처음 말하는 숫자일 것이다.
  3. 내 차례는 m번 마다 오므로, 그 다음 숫자는 m번 더해준 인덱스의 값이 된다.

4. 소스코드

import java.util.*;
class Solution {
    
    public String solution(int n, int t, int m, int p) {
        ArrayList<Character> list=new ArrayList<>();
        
        for(int i=0;i<m*t;i++){    
            String now=Integer.toString(i,n);
            now=now.toUpperCase();
            for(int j=0;j<now.length();j++)
                list.add(now.charAt(j));
            
        }
        String answer="";
        
     
        
        for(int i=0;i<t;i++){
            char num = list.get(p-1);
            p+=m;
            answer+=num;
        }
      
 
        return answer;
    }
}

5. 결과

6. 회고

swift랑 java 병행해서 하다보니까 ArrayList에
.add 안하고 .append로 코드를 쳤는데
계속 에러가 떠서 챗 지피티한테 어디가 오류냐고 물어보기까지했다...ㅋㅋ

하루에 백준 1문제 이상 푸는 것을 목표로 하고있다.
https://solved.ac/profile/anwlro0212

profile
아이스 카라멜 마끼아또보단 뜨거운 아메리카노를, 맨투맨보단 니트를, 웹툰보단 책을 좋아하고 싶은 사람
post-custom-banner

0개의 댓글