[์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ] ๋ฐฑ์ค(1009๋ฒ) - ๋ถ์ฐ ์ฒ๋ฆฌ
[๋ฐฑ์ค] ๋ถ์ฐ ์ฒ๋ฆฌ ๋ฌธ์ ( ๋ธ๋ก ์ฆ2 )
| ๋ฌธ์ | |
| ์ฌ์ฉ์ด๋ ์ต์ ์ปดํจํฐ 10๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ด๋ ๋ ์ฌ์ฉ์ด๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํด์ผ ๋ ์ผ์ด ์๊ฒจ์ ๊ฐ ์ปดํจํฐ์ 1๋ฒ๋ถํฐ 10๋ฒ๊น์ง์ ๋ฒํธ๋ฅผ ๋ถ์ฌํ๊ณ , 10๋์ ์ปดํจํฐ๊ฐ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ์ดํฐ๋ค์ ์ฒ๋ฆฌํ๊ธฐ๋ก ํ์๋ค. - 1๋ฒ ๋ฐ์ดํฐ๋ 1๋ฒ ์ปดํจํฐ, 2๋ฒ ๋ฐ์ดํฐ๋ 2๋ฒ ์ปดํจํฐ, 3๋ฒ ๋ฐ์ดํฐ๋ 3๋ฒ ์ปดํจํฐ, ... , - 10๋ฒ ๋ฐ์ดํฐ๋ 10๋ฒ ์ปดํจํฐ, 11๋ฒ ๋ฐ์ดํฐ๋ 1๋ฒ ์ปดํจํฐ, 12๋ฒ ๋ฐ์ดํฐ๋ 2๋ฒ ์ปดํจํฐ, ... ์ด ๋ฐ์ดํฐ์ ๊ฐ์๋ ํญ์ a^b๊ฐ์ ํํ๋ก ์ฃผ์ด์ง๋ค. ์ฌ์ฉ์ด๋ ๋ฌธ๋ ๋ง์ง๋ง ๋ฐ์ดํฐ๊ฐ ์ฒ๋ฆฌ๋ ์ปดํจํฐ์ ๋ฒํธ๊ฐ ๊ถ๊ธํด์ก๋ค. ์ด๋ฅผ ์ํํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ. |
|
| ์ ๋ ฅ | |
| ์ ๋ ฅ์ ์ฒซ ์ค์๋ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ทธ ๋ค์ ์ค๋ถํฐ ๊ฐ๊ฐ์ ํ ์คํธ ์ผ์ด์ค์ ๋ํด ์ ์ a์ b๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ a < 100, 1 ≤ b < 1,000,000) | |
| ์ถ๋ ฅ | |
| ๊ฐ ํ ์คํธ ์ผ์ด์ค์ ๋ํด ๋ง์ง๋ง ๋ฐ์ดํฐ๊ฐ ์ฒ๋ฆฌ๋๋ ์ปดํจํฐ์ ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๋ค. | |
| ์์ ์ ๋ ฅ | ์์ ์ถ๋ ฅ |
| 5 | ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ |
| 1 6 | 1 |
| 3 7 | 7 |
| 6 2 | 6 |
| 7 100 | 1 |
| 9 635 | 9 |
๋ฌธ์ ํ์ด
ํด๋น ๋ฌธ์ ๋ ๊ฐ ํ ์คํธ ์ผ์ด์ค์ ๋ํด ๋ง์ง๋ง ๋ฐ์ดํฐ๊ฐ ์ฒ๋ฆฌ๋๋ ์ปดํจํฐ์ ๋ฒํธ๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.
(1) ํด๋น ๋ฌธ์ ๋ ๋จผ์ ํ
์คํธ ์ผ์ด์ค ๋งํผ์ t์ ๊ฐ์ ๋ฐ๊ธฐ ๋๋ฌธ์ ๋ฐ๋ณต๋ฌธ์ ํตํด t๋งํผ ๋ก์ง์ ๋๋ ค์ผ ํ๋ค.
(2) ๋ฐ์ดํฐ ์ ์ฅ ๋ฐฉ์
1๋ฒ ๋ฐ์ดํฐ -> 1๋ฒ ์ปดํจํฐ
2๋ฒ ๋ฐ์ดํฐ -> 2๋ฒ ์ปดํจํฐ ...
10๋ฒ ๋ฐ์ดํฐ -> 10๋ฒ ์ปดํจํฐ
11๋ฒ ๋ฐ์ดํฐ -> 1๋ฒ ์ปดํจํฐ...
(3) ์ด ๋ฐ์ดํฐ์ ๊ฐ์๋ ํญ์ a^b๊ฐ์ ํํ๋ก ์ฃผ์ด์ ธ์ผ ํ๋ค.
a = 2 , b = 4 ์ธ๊ฒฝ์ฐ 2^4 ์ด๋ฉฐ, 16 ๊ฑฐ๋ญ์ ๊ณฑ๊ฐ์ด ๋์ค๊ฒ ๋๋ค.
1~16์ ๊ฐ ์ปดํจํฐ์ ์ ์ฅ์ ํ๊ฒ ๋๊ณ ์กฐ๊ฑด์ผ๋ก๋ 11๋ฒ๋ถํฐ๋ ๋ค์ 1๋ฒ์ ์ ์ฅ์ ํ๋ค.
๊ฒฐ๊ณผ๋ ๋ง์ง๋ง ๊ฐ์ธ 16์ด ๋ค์ด๊ฐ๋ ์ปดํจํฐ ๋ฒํธ๋ก๋ 6๋ฒ์ด ๋๋ค.
(4) ๊ฒฐ๊ตญ ๊ฑฐ๋ญ์ ๊ณฑ๊ฐ์ 1์ ์๋ฆฌ ์ซ์์ ๋ฐ๋ผ ๋ค์ด๊ฐ๋ ์ปดํจํฐ๊ฐ ๋ฌ๋ผ์ง๋ค๋ ์๋ฏธ์ด๋ค.
๊ทธ๋ผ ๊ฑฐ๋ญ์ ๊ณฑ๊ฐ์ ๊ตฌํ ๋ค ๋ชจ๋๋ฌ ์ฐ์ฐ์๋ฅผ ํตํด 1์ ์๋ฆฌ๋ฅผ ๊ตฌํ๋ฉด ๋ ๊น?
- ๊ฐ๋ฅ์ ํ์ง๋ง, ์์ ์ ๋ ฅ์ผ๋ก๋ 7 100, 9 635์ ๊ฐ์ ์์ฒญ ํฐ ์ซ์ ๋ํ ํฌํจ์ด ๋์ด์๋ค.
- ๊ฒฐ๊ตญ 7์ 100์น๊ณผ 9์ 635์น์ ๋ง๋ ์๋๋ ์ซ์๊ฐ ๋์ฌ ๊ฒ ์ด๋ค. ( ์ฐ์ฐ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ค๋ ์๋ฏธ์ด๋ค. )
ํด๊ฒฐ ๋ฐฉ๋ฒ
๊ฑฐ๋ญ์ ๊ณฑ๊ฐ์ ์กด์ฌํ๋ ๊ท์น๊ณผ ๋ชจ๋๋ฌ ์ฐ์ฐ์๋ฅผ ์ด์ฉํ๋ฉด ๋๋ค.
2^1 -> 2 ( 1 = 4 × 0 + 1 ) -> 1
2^2 -> 4 ( 2 = 4 × 0 + 2 ) -> 2
2^3 -> 8 ( 3 = 4 × 0 + 3 ) -> 3
2^4 -> 16 ( 4 = 4 × 1 + 0 ) -> 4
2^5 -> 32
2^6 -> 64
2^7 -> 128
2^8 -> 256
(1) 1์ ์๋ฆฌ ์ซ์๊ฐ 2 , 4 , 8 , 6 ์ผ๋ก ๋ฐ๋ณต์ด ๋๋ค. ( ๋๋จธ์ง ์ซ์ ๋ํ ๋ฐ๋ณต์ด ๋๋ค. )
๊ฒฐ๊ตญ ๋ฌธ์ ์์๋ ๊ฑฐ๋ญ์ ๊ณฑ๊ฐ์ 1์ ์๋ฆฌ๋ง์ ์ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ฑฐ๋ํ ์ซ์์ ์ฐ์ฐ ์์ด๋ ๊ท์น์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๊ฒ ๋๋ค.
(2) ์ ๊ณฑ์์ ๋ฐ๋ณต๋๋ ์๋ค์ ๊ฐ์๋ฅผ ๋ชจ๋๋ฌ ์ฐ์ฐ์ ํ ๋ค ๋๋จธ์ง๋ฅผ ๊ตฌํ๊ฒ ๋๋ฉด ๊ฑฐ๋ญ์ ๊ณฑ๊ฐ์ด ๋ช์ธ์ง ์ธ๋ฑ์ค๋ก ์ ์ ์๋ค.
๊ฑฐ๋ญ์ ๊ณฑ๊ฐ์ 1์์๋ฆฌ -> 2, 4, 8, 6(๋ฐ๋ณต)
๊ฑฐ๋ญ์ ๊ณฑ๊ฐ์ ๋๋จธ์ง -> 1, 2, 3, 4
(3) ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ฉด ์ธ๋ฑ์ค ๋ฐ๋ณต๋๋ ์์ ๋ช๋ฒ์งธ ๊ฐ์ด ๋ง์ง๋ง ๊ฐ์ธ์ง๋ฅผ ์ ์ ์๊ฒ ๋๋ค.
์ฝ๋๋ก ๊ตฌํ
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int t = scanner.nextInt();
StringBuilder result = new StringBuilder();
for (int i = 0; i < t; i++) {
int a = scanner.nextInt();
int b = scanner.nextInt();
int computerNumber = getComputerNumber(a, b);
result.append(computerNumber).append("\n");
}
System.out.print(result);
}
private static int getComputerNumber(int a, int b) {
int lastDigit = a % 10;
List<Integer> cycle = new ArrayList<>();
int current = lastDigit;
while (!cycle.contains(current)) {
cycle.add(current);
current = (current * lastDigit) % 10;
}
System.out.println(cycle);
int index = (b % cycle.size() == 0) ? cycle.size() - 1 : (b % cycle.size()) - 1;
int computerNumber = cycle.get(index);
if (computerNumber == 0) {
computerNumber = 10;
}
return computerNumber;
}
}
(1) ๋ฐ๋ณต๋๋ ๊ฐ์ List์ ๋ด์์ฃผ๊ธฐ
(2) ๋ฆฌ์คํธ์์ ํด๋น ๊ฐ์ด ์กด์ฌํ์ง ์์ ๋์ ์กฐ๊ฑด์ ๊ฑธ์ด ๋ฐ๋ณต๋ฌธ์ ๋๋ ค์ค๋ค.
(3) ํด๋น ๋ฐ๋ณต๋ฌธ์์๋ ๋ฐ๋ณต๋๋ ๊ฑฐ๋ญ์ ๊ณฑ๊ฐ์ ์์๋ก ์ ๊ณฑํด์ฃผ๋ฉด์ ๋ชจ๋๋ฌ๋ฅผ ํตํด 1์ ์๋ฆฌ๋ง ๋ฝ์์ ๋ฆฌ์คํธ์ ๋ด์์ค๋ค.
(4) ๋ฐ๋ณต๋ฌธ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค์ ์๊ฐ ๋ฆฌ์คํธ์ ๋ด๊ฒจ์์ ๊ฒฝ์ฐ ๋ฐ๋ณต๋ฌธ์ ๋น ์ ธ๋๊ฐ๊ฒ ๋๋ค.
(5) ์ ๊ณฑ์ ์์ ๋ฆฌ์คํธ์ ํฌ๊ธฐ๋ฅผ ๋ชจ๋๋ฌ๋ฅผ ํตํด ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ฉด ํด๋น ๋๋จธ์ง๋ ๊ฑฐ๋ญ์ ๊ณฑ๊ฐ์ ๋ง์ง๋ง ์๊ฐ ๋์จ๋ค.
(6) ๋๋จธ์ง๊ฐ 0์ผ ๊ฒฝ์ฐ์๋ ๋ฐ๋์ ๋ฆฌ์คํธ ์ฌ์ด์ฆ์ -1์ ํด ๋ง์ง๋ง ์ธ๋ฑ์ค์ ๊ฐ์ ๋ฝ์์ค๋ค.
(7) ์ต์ข ์ ์ผ๋ก ๋ฆฌ์คํธ์ ๋๋จธ์ง ๊ฐ์ด 0์ผ ๊ฒฝ์ฐ์๋ 10๋ฒ ์ปดํจํฐ๋ก ๋ง๋ค์ด์ค๋ค.