Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 카카오클라우드스쿨2기
- 데이터베이스 개론
- 생활코딩 데이터베이스
- 개발자
- 생활코딩 머신러닝야학
- 머신러닝야학
- 생활코딩
- 연산자
- tensorflow
- flatten
- 머신러닝(딥러닝)
- Java
- MySQL
- CNN
- 이것이 자바다
- 데이터베이스
- Python
- 야학
- 데이터베이서
- Database
- pandas
- LeNet
- 딥러닝
- 머신러닝
- reshape
- 판다스
- 파이썬
- JavaScript
Archives
- Today
- Total
IT's 우
[java] 프로그래머스 - n진수 게임 본문
728x90
📖 풀이한 문제
💡 문제에서 사용된 알고리즘
- 수학
📜 코드 설명
- makeNum = 012345678 이런 식으로 붙여서 튜브가 말할 인덱스를 출력해 줄 것이다.
- 변수 num : makeNum에 붙일 다음 숫자
- 첫번째 반복문에서는 makeNum에 다음 숫자를 넣어준다.
- 두 번째 반복문에서는 makeNum의 길이가 p(튜브가 말할 인덱스) 보다 크거나 같으면 answer에 makeNum에 p에 해당하는 인덱스의 문자를 붙여주고. t를 1 줄여준다. t가 0이면 다 말했으므로 전체 반복문을 종료한다. 아니라면 p에 다음 인덱스를 찾아주기 위하여 전체 인원을 더해준다.
- 두 번째 반복문이 끝났다는 거는 makeNum에 다음 숫자를 더해야 하므로 num++해준다.
📜 코드
class Solution {
public String solution(int n, int t, int m, int p) {
String answer = "";
// 0 ~ 나열할 숫자
int num = 0;
// 출력할 숫자를 01234 이런식으로 붙일 것이다.
String makeNum = "";
// 튜브가 말해야하는 숫자의 개수가 0일때까지
// 첫번째 반복문은 구할 num을 진수로 바꿔서 makeNum 뒤에 붙여준다.
while (t != 0) {
// num을 진수로 바꿔서 뒤에 붙여준다.
makeNum += makeNumber(n, num);
// makeNum의 길이
int len = makeNum.length();
// p는 튜브가 makeNum의 길이 전까지 makeNum에서 p 인덱스에 해당하는 것을 answer에 더해준다.
loop:
while (p <= len) {
// p에 해당하는 인덱스를 answer에 더해준다.
answer += makeNum.charAt(p - 1);
// t를 하나 줄여준다.
t--;
// t가 0이면 전체 반복문 종료
if (t == 0) break loop;
// 다음 인덱스를 구해준다. p에 전체 인원 더해준다.
p += m;
}
// p 인덱스를 못찾으면 다음 숫자를 makeNum에 다음 숫자를 더해준다.
num++;
}
return answer;
}
// number을 i진법의 수 만들기
private static String makeNumber (int i, int number) {
if (i == 10) return number + "";
else if (number == 0) return "0";
else {
String result = "";
while (number != 0) {
if (number % i >= 10) {
result = (char)('A' + number % i - 10) + result;
} else {
result = number % i + result;
}
number /= i;
}
return result;
}
}
}
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[java] 프로그래머스 - JadenCase 문자열 만들기 (0) | 2023.08.24 |
---|---|
[java] 프로그래머스 - 압축 (0) | 2023.08.18 |
[java] 프로그래머스 - n^2 배열 자르기 (0) | 2023.08.16 |
[java] 프로그래머스 - k진수에서 소수 개수 구하기 (2) | 2023.08.09 |
[java] 프로그래머스 - 숫자의 표현 (0) | 2023.08.08 |