Skip to content

BOJ 9613 GCD ํ•ฉ ํ’€์ดย #10

@allzeroyou

Description

@allzeroyou

๋ฌธ์ œ ๋ถ„์„

์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„(๋ฌธ์ œ ์š”์•ฝ ๋ฐ ์กฐ๊ฑด ํŒŒ์•…)

์–‘์˜ ์ •์ˆ˜ n๊ฐœ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์Œ์˜ GCD์˜ ํ•ฉ ๊ตฌํ•˜๊ธฐ.

GCD: ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜(Greatest Common Divisor, GCD)

  • ์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ํ…Œ.์ผ€์˜ ๊ฐœ์ˆ˜(1โ‰คtโ‰ค100)

๊ฐ ํ…Œ.์ผ€๋Š” ํ•œ ์ค„๋กœ ์ด๋ค„์ง.

์ฒซ๋ฒˆ์งธ ์ˆ˜๋Š” ์ˆ˜์˜ ๊ฐœ์ˆ˜ n(1โ‰คnโ‰ค100), ์ดํ›„ n๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง.

์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ์ˆ˜๋Š” ๋ฐฑ๋งŒ์„ ๋„˜์ง€ ์•Š์Œ.

  • ์ถœ๋ ฅ

๊ฐ ํ…Œ.์ผ€๋งˆ๋‹ค ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์Œ์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์˜ ํ•ฉ ์ถœ๋ ฅ

๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„ (๋ฌธ์ œ ํ•ต์‹ฌ ํŒŒ์•…)

์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” ๋‘ ์ž์—ฐ์ˆ˜์˜ ๊ณตํ†ต๋œ ์•ฝ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ํฐ ์ˆ˜

โ†’ ๋‘์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ์ด์šฉ.

<์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•>

์ž„์˜์˜ ๋‘ ์ž์—ฐ์ˆ˜ a, b๊ฐ€ ์ฃผ์–ด์ง€๊ณ  ๋‘˜ ์ค‘ ํฐ ๊ฐ’์ด a๋ผ๊ณ  ๊ฐ€์ •ํ•˜์ž.

a๋ฅผ b๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ n๋กœ ํ•œ๋‹ค๋ฉด(a%b = n)

n์ด 0์ผ๋•Œ, b๊ฐ€ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์ž„

๋งŒ์•ฝ, n์ด 0์ด ์•„๋‹ˆ๋ผ๋ฉด a์— b๊ฐ’์„ ๋‹ค์‹œ๋„ฃ๊ณ  b์— n๋ฅผ ๋Œ€์ž…ํ•˜๊ณ  ์œ„ ๊ณผ์ •์—์„œ ๋‚˜๋ˆ„๊ธฐ๋ถ€ํ„ฐ ๋ฐ˜๋ณตํ•œ๋‹ค.

์ฝ”๋“œ ์ž‘์„ฑ

import sys

input = sys.stdin.readline

n = int(input())

def gcd(a, b):
    if a % b == 0:
        return b
    else:
        return gcd(b, a % b)

for _ in range(n):
    tc = list(map(int, input().split()))
    ans = 0
    for i in range(1, tc[0]):  # ์ˆ˜์˜ ๊ฐœ์ˆ˜
        for j in range(i + 1, tc[0] + 1):  # ๋‘ ์ˆ˜๋ฅผ ์ง์ง€์–ด ์ค€๋‹ค.
            ans += gcd(tc[i], tc[j])

    print(ans)

๋А๋‚€์ 

์œ ํด๋ฆฌ๋“œํ˜ธ์ œ๋ฒ•์œผ๋กœ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions