[๋ฌธ์ ๋งํฌ] ๐
SW Expert Academy
SW ํ๋ก๊ทธ๋๋ฐ ์ญ๋ ๊ฐํ์ ๋์์ด ๋๋ ๋ค์ํ ํ์ต ์ปจํ ์ธ ๋ฅผ ํ์ธํ์ธ์!
swexpertacademy.com
ํ์ด ๋ฐฉ๋ฒ
๐ก ์ฝ์ ์ด์ฉํ๊ธฐ
N ์ด 10 ์ผ ๊ฒฝ์ฐ ์ต์ ์ด๋ ๊ฒฝ๋ก๋ ๋ค์๊ณผ ๊ฐ๋ค. ์๋ ๊ทธ๋ฆผ์ ๊ณฑ์ ํ์ด๋ค.

2์ 5๋ 10์ ์ฝ์์ ๊ฐ๋ค. ๋ฐ๋ผ์ 10์ ์ฝ์๋ฅผ ๊ตฌํด์ผ ํ๋๋ฐ, ๋ ์์ ๊ณฑ์ ์ฐจ๊ฐ ๊ฐ์ฅ ์์ i์ j ๋ฅผ ๊ตฌํด์ผ ํ๋ค.
(1, 1) ์์ (2, 5) ๊น์ง ๊ฐ๋ ค๋ฉด, i๋ 2๊ฐ ๋์ด์ผ ํ๊ณ , j๋ 5๊ฐ ๋์ด์ผ ํ๋ค.
- i โ 2 - 1 = 1
- j โ 5 - 1 = 4
๋ฐ๋ผ์ ๋ต์ 1 + 4 = 5 ์ด๋ค.
Solution
T = int(input()) # ํ
์คํธ ์ผ์ด์ค ์
for test_case in range(1, T + 1):
N = int(input())
# N ์ฝ์ ๊ตฌํ๊ธฐ
min_num = N
x, y = 0, 0
for i in range(1, int(N**0.5) + 1):
if N % i == 0:
if (N // i) - i < min_num: # ์ฝ์์ ์ฐจ๊ฐ ์ ์ผ ์์ ๊ฑฐ
x = i
y = N // i
result = (x - 1) + (y - 1)
print(f"#{test_case} {result}")
๊ฐ์ ํ ๊ณณ
์ฝ์๋ฅผ ๊ตฌํ๊ณ ์ต์ ์ฐจ์ด๋ฅผ ์ฐพ๋ ๋ถ๋ถ์์ min_num ๋ณ์๋ฅผ ํ์ฉํ์ง ์๊ณ , ๋จ์ํ (N // i) - i๊ฐ ์ต์์ผ ๋ ๊ฐ์ ๋ฐ๋ก x์ y์ ํ ๋นํ๋๋ก ํ์ฌ ์ฝ๋๋ฅผ ๋ ๊ฐ๊ฒฐํ๊ฒ ํ ์ ์๋ค. ๋ํ min_num์ ์ด๊ธฐํ๋ฅผ ํ ํ์๊ฐ ์์ผ๋ฏ๋ก ์ ๊ฑฐํด๋ ๋๋ค.
๊ฐ์ ๋ ์ฝ๋
T = int(input()) # ํ
์คํธ ์ผ์ด์ค ์
for test_case in range(1, T + 1):
N = int(input())
x, y = 1, N # ์ด๊ธฐ ๊ฐ์ 1๊ณผ N์ผ๋ก ์ค์
for i in range(1, int(N**0.5) + 1):
if N % i == 0:
# ํ์ฌ i์ ๋ํด (N // i) - i๊ฐ ์ต์์ผ ๋ x, y ์
๋ฐ์ดํธ
if (N // i) - i < y - x:
x, y = i, N // i
result = (x - 1) + (y - 1)
print(f"#{test_case} {result}")
'๐งฉ Algorithm > SWEA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [SWEA] 3975. ์น๋ฅ ๋น๊ตํ๊ธฐ (Python/D3) (2) | 2024.11.15 |
|---|---|
| [SWEA] 9280. ์ง์ฉ์ด๋ค ์ฃผ์ฐจํ์ (Python/D3) (0) | 2024.11.14 |
| [SWEA] 4047. ์์ค์ด์ ์นด๋ ์นด์ดํ (Python/D3) (2) | 2024.11.14 |
| [SWEA] 3260. ๋ ์์ ๋ง์ (Python/D3) (1) | 2024.11.14 |
| [SWEA] 1873. ์ํธ์ ๋ฐฐํํ๋ (Python/D3) (2) | 2024.11.13 |