๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์ฝ”๋”ฉํ…Œ์ŠคํŠธ(Baekjoon)

[python] Baekjoon 1009 : ๋ถ„์‚ฐ์ฒ˜๋ฆฌ

by Seop๐Ÿ˜€ 2024. 3. 8.
๋ฐ˜์‘ํ˜•

 

๋ฌธ์ œ - Baekjoon 1009 : ๋ถ„์‚ฐ์ฒ˜๋ฆฌ

https://www.acmicpc.net/problem/1009

 

1009๋ฒˆ: ๋ถ„์‚ฐ์ฒ˜๋ฆฌ

์ž…๋ ฅ์˜ ์ฒซ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ทธ ๋‹ค์Œ ์ค„๋ถ€ํ„ฐ ๊ฐ๊ฐ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋Œ€ํ•ด ์ •์ˆ˜ a์™€ b๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ a < 100, 1 ≤ b < 1,000,000)

www.acmicpc.net

ํ•ต์‹ฌ

๋ถ„์‚ฐ์ฒ˜๋ฆฌ์—์„œ ํŠน์ • ์ž‘์—…์ด ์ฒ˜๋ฆฌ๋  ์ปดํ“จํ„ฐ์˜ ๋ฒˆํ˜ธ ์˜ˆ์ธก.

-> ๋‘ ์ •์ˆ˜์˜ ๋‚˜๋ˆ—์…ˆ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ.

๋‚ด์šฉ

์ฃผ์–ด์ง„ ์ž‘์—…์— ๋Œ€ํ•ด ๋งˆ์ง€๋ง‰ ์ˆซ์ž๊ฐ€ ์ฒ˜๋ฆฌ๋  ์ปดํ“จํ„ฐ ๋ฒˆํ˜ธ๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ฐ ์ž‘์—…์€ a^b ํ˜•ํƒœ๋กœ ์ฃผ์–ด์ง€๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋งˆ์ง€๋ง‰ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฒ˜๋ฆฌ๋  ์ปดํ“จํ„ฐ ๋ฒˆํ˜ธ๋ฅผ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ - (DALLE)

์ ‘๊ทผ ๋ฐฉ๋ฒ•

- a^b์˜ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ ๋Œ€์‹ , a์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ ํŒจํ„ด์„ ๋ถ„์„ํ•˜์—ฌ ๋งˆ์ง€๋ง‰ ์ˆซ์ž์˜ ๋ฐ˜๋ณต ํŒจํ„ด์„ ์ฐพ์Šต๋‹ˆ๋‹ค.
- ๊ฐ ์ˆซ์ž๋งˆ๋‹ค ๋ฐ˜๋ณต๋˜๋Š” ๋งˆ์ง€๋ง‰ ์ˆซ์ž์˜ ํŒจํ„ด์„ ์ด์šฉํ•˜์—ฌ b์— ํ•ด๋‹นํ•˜๋Š” ๋งˆ์ง€๋ง‰ ์ˆซ์ž๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
- ํŒจํ„ด์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ณ„์‚ฐ๋Ÿ‰์„ ์ค„์ด๊ณ  ๋น ๋ฅธ ์˜ˆ์ธก์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ

T = int(input())  # ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ˆ˜

for _ in range(T):
    a, b = map(int, input().split())
    a %= 10  # a์˜ ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ ์ˆซ์ž๋งŒ ์‚ฌ์šฉ

    if a == 0:  # 0์ผ ๊ฒฝ์šฐ ํ•ญ์ƒ 10๋ฒˆ ์ปดํ“จํ„ฐ
        print(10)
    else:
        cycle = [a]
        while True:
            next_num = (cycle[-1] * a) % 10
            if next_num == cycle[0]:  # ์ˆœํ™˜ ํŒจํ„ด ์‹œ์ž‘
                break
            cycle.append(next_num)

        print(cycle[(b % len(cycle)) - 1])

ํ’€์ด

- `a`์˜ ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ ์ˆซ์ž๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ„ด์„ ์ฐพ์Šต๋‹ˆ๋‹ค.
- `a`๋ฅผ ๊ณฑํ•œ ๊ฒฐ๊ณผ์˜ ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ ์ˆซ์ž๊ฐ€ ์ฒ˜์Œ๊ณผ ๊ฐ™์•„์งˆ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜์—ฌ ํŒจํ„ด์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
- `b`๋ฅผ ํŒจํ„ด ๊ธธ์ด๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น๋˜๋Š” ์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

python coding

์ฐธ๊ณ  ์ž๋ฃŒ

- Python์˜ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž์™€ ๊ฑฐ๋“ญ์ œ๊ณฑ ์—ฐ์‚ฐ์— ๋Œ€ํ•œ ์„ค๋ช…: [Python Official Documentation](https://docs.python.org/3/reference/expressions.html))
- ์ปดํ“จํ„ฐ์˜ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ์— ๊ด€ํ•œ ๊ธฐ๋ณธ ์ด๋ก : [Distributed Computing Wikipedia](https://en.wikipedia.org/wiki/Distributed_computing))

๋Œ“๊ธ€