재용이는 최신 컴퓨터 10대를 가지고 있다. 어느 날 재용이는 많은 데이터를 처리해야 될 일이 생겨서 각 컴퓨터에 1번부터 10번까지의 번호를 부여하고, 10대의 컴퓨터가 다음과 같은 방법으로 데이터들을 처리하기로 하였다.
1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터, 3번 데이터는 3번 컴퓨터, ... ,
10번 데이터는 10번 컴퓨터, 11번 데이터는 1번 컴퓨터, 12번 데이터는 2번 컴퓨터, ...
총 데이터의 개수는 항상 ab개의 형태로 주어진다. 재용이는 문득 마지막 데이터가 처리될 컴퓨터의 번호가 궁금해졌다. 이를 수행해주는 프로그램을 작성하라.
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000)
각 테스트 케이스에 대해 마지막 데이터가 처리되는 컴퓨터의 번호를 출력한다.
5
1 6
3 7
6 2
7 100
9 635
1
7
6
1
9
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int number = Integer.parseInt(br.readLine());
String[] string;
for(int i=0; i<number; i++) {
string = br.readLine().split(" ");
int a = Integer.parseInt(string[0]);
int b = Integer.parseInt(string[1]);
int computer = 1;
for(int j=0; j<b; j++) {
computer = (computer * a) % 10;
}
if(computer==0) {
computer=10;
}
System.out.println(computer);
}
}
}
이 코드에 중요한 건, 일의 자리가 0일 때 값을 10으로 처리해줘야 한다. 0번 컴퓨터는 없으니까. (내가 놓쳐서 적어놓는 건 맞음)
1년 가까이 백준 안 풀었음 + 이클립스에서 VSCode로 에디터 바꿈 + 2달동안 JS코드만 작성하다 옴 이슈로 JAVA 풀이가 정말정말정말 안 되고, 메소드도 기억도 안 나서 실버4 풀다가 급하게 바꿨다. 4년동안 이클립스만 쓰다가 에디터 바꾼 게 너무 적응이 안 되는 게 은근 컸다. 다양한 에디터를 경험해보는 것도 중요하겠구나를 느꼈음. 너무 우물 안 개구리된 느낌. (적고 보니 핑계같지만) 그리고 문제를 너무 직관적으로 바라본 게 너무 아쉽다. 규칙만 발견했으면 금방 해결했을텐데 기존 방법은 쓸데없이 String/char로 형변환도 너무 잦았고, 좋은 코드가 아니였을 법한데 굳이굳이 잡고있던 게 아쉽지만.. 이제 백준을 또 다시 습관화하다보면 풀이가 익숙해질거라 생각한다. 당분간은 브론즈 문제 풀면서 기억을 되살려야겠다.