๐Ÿงฉ Algorithm/[BOJ] Bronze

BOJ 1934๋ฒˆ : ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ (Python/์ˆ˜ํ•™/Bronze 1)

devCloud 2024. 10. 15. 14:34
728x90

[๋ฌธ์ œ ๋งํฌ] ๐Ÿ‘‰ https://www.acmicpc.net/problem/1934


์„ค๋ช…

A์˜ ๋ฐฐ์ˆ˜์ด๋ฉด์„œ B์˜ ๋ฐฐ์ˆ˜์ธ ์ž์—ฐ์ˆ˜๋ฅผ A์™€ B์˜ ๊ณต๋ฐฐ์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋Ÿฐ ๊ณต๋ฐฐ์ˆ˜ ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ์ตœ์†Œ ๊ณต๋ฐฐ์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค.
A์™€ B์˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ผ.

 

ํ’€์ด

sol.1

for๋ฌธ์œผ๋กœ 45000๋ถ€ํ„ฐ 1๊นŒ์ง€ ์ผ์ผ์ด ๊ฒ€์‚ฌํ•œ๋‹ค. a์™€ b๋ฅผ i๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 0์ผ ๋•Œ ๋ชซ์„ a์™€ b์— ๋‹ค์‹œ ์ €์žฅํ•˜๊ณ  ๊ฒฐ๊ณผ๊ฐ’์— i๋ฅผ ๊ณฑํ•ด ๋ˆ„์ ํ•œ๋‹ค. for๋ฌธ์ด ์ข…๋ฃŒ๋˜๋ฉด a์™€ b์˜ ๊ณฑ์„ ๋‹ค์‹œ ๊ฒฐ๊ณผ๊ฐ’์— ๊ณฑํ•˜๋ฉฐ ์ €์žฅํ•œ๋‹ค. 

 

 

ํฐ ์ˆ˜๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜๋Š” ์ด์œ 

for i in range(45000, 1, -1):
	if a % i == 0 and b % i == 0:
  • 45000๋ถ€ํ„ฐ 1๊นŒ์ง€ ๊ฑฐ๊พธ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ์ด์œ ๋Š” ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์ฐพ๊ธฐ ์œ„ํ•จ์ด๋‹ค. ํฐ ์ˆ˜๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฉด ๋‘ ์ˆ˜๋ฅผ ๋™์‹œ์— ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ๊ฐ€์žฅ ํฐ ๊ณต์•ฝ์ˆ˜๋ฅผ ๋จผ์ € ์ฐพ๊ฒŒ ๋œ๋‹ค.
  • a์™€ b๊ฐ€ i๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง„๋‹ค๋ฉด, ์ด๋Š” i๊ฐ€ ๋‘ ์ˆ˜์˜ ๊ณต์•ฝ์ˆ˜๋ผ๋Š” ๋œป์ด๋ฉฐ, ์ด๋•Œ ๊ฐ€์žฅ ํฐ ๊ฐ’๋ถ€ํ„ฐ ํ™•์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฒซ ๋ฒˆ์งธ๋กœ ์ฐพ๋Š” ๊ฐ’์ด ๋ฐ”๋กœ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜(GCD)์ด๋‹ค.

 

sol.2

๋‘ ์ˆ˜์˜ ๊ณฑ์„ ๊ทธ ๋‘ ์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜(GCD)๋กœ ๋‚˜๋ˆ„๋ฉด ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜(LCM)๊ฐ€ ๋œ๋‹ค. math ๋ชจ๋“ˆ์„ ์ด์šฉํ•œ๋‹ค.

import math
math.gcd(a, b)

 

 

 

Solution

sol.1 (๋ฐ˜๋ณต๋ฌธ ์ด์šฉ)

t = int(input())
for _ in range(t):
    a, b = map(int, input().split())
    result = 1
    for i in range(45000, 1, -1): #45000๋ถ€ํ„ฐ ๊ฑฐ๊พธ๋กœ 2๊นŒ์ง€
        if a % i == 0 and b % i == 0:
            a /= i
            b /= i
            result *= i
    result *= a * b
    print(int(result))

 

๐Ÿ“Œ ๋ชซ์„ ๊ตฌํ•  ๋•Œ '/' ์—ฐ์‚ฐ์ž ๋ง๊ณ  '//'๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด int๋กœ ๋ณ€ํ™˜ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

 

 

sol.2 (math๋ชจ๋“ˆ ์ด์šฉ)

import math

t = int(input())
for _ in range(t):
    a, b = map(int, input().split())
    result = abs(a * b) // math.gcd(a, b)
    print(result)

 

๐Ÿ“Œ abs() : ์ ˆ๋Œ“๊ฐ’

 

 

๐Ÿ‘ฉ‍๐Ÿ’ป ํšŒ๊ณ 

๋‘ ์ˆ˜์˜ ๊ณฑ์„ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋กœ ๋‚˜๋ˆ„๋ฉด ์ตœ๋Œ€๊ณต๋ฐฐ์ˆ˜๊ฐ€ ๋œ๋‹ค๋Š” ๊ฑธ ์ด์ œ์•ผ ์•Œ์•˜๋‹ค.. ๊ธฐ์–ตํ•ด๋†“์ž.

๊ทธ๋ฆฌ๊ณ  ๋ชซ์„ ๊ตฌํ•  ๋•Œ '//'๋ฅผ ์‚ฌ์šฉํ•ด์•ผ doubleํ˜•์ด ์•„๋‹Œ intํ˜•์œผ๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค๋Š” ๊ฒƒ๋„ ์•Œ๊ฒŒ ๋๋‹ค.


 

728x90