백준 분산처리
일의자리가 반복되고 나오는 수가 정해져있다는걸 알았을때 바로 떠오른 생각이 정해진 숫자가 얼마없으니 배열로 만들어놓고 빼서 갔다쓰자였습니다.
하지만 바로 실패를 해버렸고,
public class Main {
static int[] arr1 = {1};
static int[] arr2 = {2, 4, 8, 6};
static int[] arr3 = {3, 9, 7, 1};
static int[] arr4 = {4, 6};
static int[] arr5 = {5};
static int[] arr6 = {6};
static int[] arr7 = {7, 9, 3, 1};
static int[] arr8 = {8, 4, 2, 6};
static int[] arr9 = {9, 1};
static int[] arr0 = {0};
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int textCase = sc.nextInt();
for (int i = 0; i < textCase; i++) {
int a = sc.nextInt();
int b = sc.nextInt();
int realA = a % 10;
findNums(b, realA);
}
}
private static void findNums(int b, int realA) {
if (realA == 1) {
System.out.println(arr1[0]);
} else if (realA == 2) {
int realB = b % 4;
System.out.println(arr2[realB]);
} else if (realA == 3) {
int realB = b % 4;
System.out.println(arr3[realB]);
} else if (realA == 4) {
int realB = b % 2;
System.out.println(arr4[realB]);
} else if (realA == 5) {
System.out.println(arr5[0]);
} else if (realA == 6) {
System.out.println(arr6[0]);
} else if (realA == 7) {
int realB = b % 4;
System.out.println(arr7[realB]);
} else if (realA == 8) {
int realB = b % 4;
System.out.println(arr8[realB]);
} else if (realA == 9) {
int realB = b % 2;
System.out.println(arr9[realB]);
} else if (realA == 0) {
System.out.println(arr0[0]);
}
}
}
이때 int realB = b % 4
를 했을때 realB가 0이면 4번째 수인데 배열 인덱스랑 딱 맞춰지다보니까 0번째는 1번째 일의자리로 해놔서 자꾸 실패했단걸 알아 배열의 값의 자리수만 변경해 성공했습니다.
성공한 코드
static int[] arr1 = {1};
static int[] arr2 = {6, 2, 4, 8};
static int[] arr3 = {1, 3, 9, 7};
static int[] arr4 = {6, 4};
static int[] arr5 = {5};
static int[] arr6 = {6};
static int[] arr7 = {1, 7, 9, 3};
static int[] arr8 = {6, 8, 4, 2};
static int[] arr9 = {1, 9};
static int[] arr0 = {10};
위와동일~~
Author And Source
이 문제에 관하여(백준 분산처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@taehyun_96/백준-분산처리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)