๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿƒ algorithm/boj

BOJ 9094 - ์ˆ˜ํ•™์  ํ˜ธ๊ธฐ์‹ฌ

by HandHand 2021. 9. 12.

๋ฌธ์ œ

๋ฐฑ์ค€ ์˜จ๋ผ์ธ ์ €์ง€ - 9094๋ฒˆ

ํ’€์ด ๊ณผ์ •

๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์กฐํ•ฉ์„ ๋งŒ๋“ค์–ด๋ณธ ๋‹ค์Œ ์ฃผ์–ด์ง„ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์กฐํ•ฉ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์ฒ˜์Œ์— a ์™€ b ์˜ ์กฐํ•ฉ์˜ ๊ฐœ์ˆ˜๊ฐ€ 10000๊ฐœ๋ฅผ ๋„˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœ ์กฐํ•ฉ๊ฐœ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‹œ๋„ํ–ˆ๋Š”๋ฐ

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T ๋ฅผ ๊ณ ๋ คํ•˜์ง€ ๋ชปํ•ด์„œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.


์ด๋ฅผ ์œ„ํ•ด a, b, m ์„ ์ƒํƒœ๋ณ€์ˆ˜๋กœ ํ•˜๋Š” ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ์ ์šฉํ•ด์„œ ์ค‘๋ณต๋œ ๊ณ„์‚ฐ์„ ์ค„์ด๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ


import sys


def solution():
    ret = 0

    for a in range(1, n):
        for b in range(a + 1, n):
            if memo[a][b][m] != -1:
                ret += memo[a][b][m]
                continue

            numerator, denominator = (a**2 + b**2 + m), (a * b)

            if numerator % denominator == 0:
                ret += 1
                memo[a][b][m] = 1
            else:
                memo[a][b][m] = 0

    return ret


if __name__ == '__main__':
    T = int(input())
    memo = [[[-1 for _ in range(101)] for _ in range(101)] for _ in range(101)]

    for _ in range(T):
        n, m = list(map(int, sys.stdin.readline().split()))
        answer = solution()

        print(answer)
๋ฐ˜์‘ํ˜•

'๐Ÿƒ algorithm > boj' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

BOJ 5076 - Web Pages  (0) 2021.07.19
BOJ 1920 - ์ˆ˜ ์ฐพ๊ธฐ  (0) 2021.07.05
BOJ 13700 - ์™„์ „ ๋ฒ”์ฃ„  (0) 2021.06.29
BOJ 14950 - ์ •๋ณต์ž  (0) 2021.06.25
BOJ 1197 - ์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ  (0) 2021.06.18

๐Ÿ’ฌ ๋Œ“๊ธ€