728x90
✅ 문제 요약
n진법 숫자 X를 입력받았을 때 X를 (n-1)로 나눈 나머지를 계산하라
🤔 문제 풀이
n진법을 나누기 위해 10진법으로 변환하려면
예를 들어 9진법 수 234의 경우 (2 * 9^2) + (3 * 9^1) + (4 * 9^0) 로 10진법으로 변환 할 수 있다.
이때 문제에서 요구하는 대로 ( (2 * 9^2) + (3 * 9^1) + (4 * 9^0) ) % 8을 수행해야 하는데
이는 (2 * 9^2 % 8) + (3 * 9^1 % 8) + (4 * 9^0 % 8) 과 같다.
여기서 규칙이 하나 있는데 n의 배수를 n-1 로 나눈 나머지는 항상 1이다.
따라서 (2 * 9^2 % 8) + (3 * 9^1 % 8) + (4 * 9^0 % 8) 를 간단하게 2 + 3 + 4 로 표현이 가능하다.
결론적으로 해당 문제는 각 자릿수를 더해 n-1로 나누어 주면 되는 문제였다.
🚨CODE
import java.util.*;
import java.io.*;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int testCase = Integer.parseInt(br.readLine());
for (int t = 1; t <= testCase; t++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken()); // 진수
char[] c = st.nextToken().toCharArray();
int sum = 0;
for(int i = 0; i<c.length; i++) {
sum += c[i] - '0';
}
int answer = sum % (n-1);
bw.write(String.format("#%d %d\n", t, answer));
} // testcase
bw.flush();
}
}
728x90
반응형
'코딩테스트' 카테고리의 다른 글
[JAVA-D3] SWEA 3809 - 화섭이의 정수 나열 (0) | 2024.05.08 |
---|---|
[JAVA-D3] SWEA 7272 - 안경이 없어! (0) | 2024.05.03 |
[JAVA-D3] SWEA 1229 - 암호문 2 (0) | 2024.05.03 |
[JAVA-D3] SWEA 5789 - 현주의 상자 바꾸기 (0) | 2024.05.03 |
[JAVA-D3] SWEA 4047 - 영준이의 카드 카운팅 (0) | 2024.05.03 |