๐Ÿงฉ Algorithm/SWEA

[SWEA] 3142. ์˜์ค€์ด์™€ ์‹ ๋น„ํ•œ ๋ฟ”์˜ ์ˆฒ (Python/D3)

devCloud 2024. 10. 26. 13:19
728x90

[๋ฌธ์ œ ๋งํฌ] ๐Ÿ‘‡ 

 

SW Expert Academy

SW ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ญ๋Ÿ‰ ๊ฐ•ํ™”์— ๋„์›€์ด ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ•™์Šต ์ปจํ…์ธ ๋ฅผ ํ™•์ธํ•˜์„ธ์š”!

swexpertacademy.com


ํ’€์ด

์„ค์ •

  • x ๋ฅผ ์œ ๋‹ˆ์ฝ˜(๋ฟ” 1๊ฐœ)์˜ ๋งˆ๋ฆฌ ์ˆ˜, y ๋ฅผ ํŠธ์œˆํ˜ผ(๋ฟ” 2๊ฐœ)์˜ ๋งˆ๋ฆฌ ์ˆ˜๋ผ๊ณ  ํ•˜๋ฉด,
    • x + y = M (์ด ์ง์Šน์˜ ๋งˆ๋ฆฌ ์ˆ˜๋Š” M์ด๋‹ค)
    • x + 2y = N (๋ฟ”์˜ ์ด ๊ฐœ์ˆ˜๋Š” N์ด๋‹ค)

 

๐Ÿ’ก ์—ฐ๋ฆฝ ๋ฐฉ์ •์‹์„ ํ†ตํ•ด ์œ ๋‹ˆ์ฝ˜(x)๊ณผ ํŠธ์œˆํ˜ผ(y)์˜ ๊ฐ’์„ ๊ณ„์‚ฐ

  • y = N - M
  • x = M - y

 

Solution

T = int(input())
for test_case in range(1, T + 1):
    N, M = map(int, input().split())
    # ๋ฐฉ์ •์‹์œผ๋กœ๋ถ€ํ„ฐ ์œ ๋‹ˆ์ฝ˜๊ณผ ํŠธ์œˆํ˜ผ์˜ ์ˆ˜ ๊ณ„์‚ฐ
    twin_horn = N - M
    unicorn = M - twin_horn
    print(f"#{test_case} {unicorn} {twin_horn}")

 

 

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

๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋ฅผ ์ด์šฉํ–ˆ๋”๋‹ˆ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ํ’€๋ ค์„œ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ œ์ถœํ–ˆ๋Š”๋ฐ ํ‹€๋ ธ๋‹ค๊ณ  ํ•œ๋‹ค. ๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ๋„ ์‹œ๋„ ํ•ด๋ดค๋Š”๋ฐ๋„ ๋‹ค ๋˜๊ธธ๋ž˜ ๊ทธ๋ ‡๊ฒŒ ํ‘ธ๋Š” ๊ฑด ์ค„ ์•Œ์•˜๋‹ค.์•ž์œผ๋กœ ๊ณ ์ •๋œ ๋น„์œจ์ด ์ฃผ์–ด์งˆ ๋• ์—ฐ๋ฆฝ ๋ฐฉ์ •์‹์„ ์ด์šฉํ•ด๋ณด์ž.

 

ํ‹€๋ฆฐ ํ’€์ด

    unicorn, twin_horn = 0, 0
    while N % M > 0:
        quotient = N // M  # ๋ชซ
        division = N % M  # ๋‚˜๋จธ์ง€
        N -= division  # ๋‚˜๋จธ์ง€๋ฅผ ๋ฟ”์˜ ๊ฐœ์ˆ˜์—์„œ ๋นผ์ฃผ๊ธฐ
        M -= quotient  # ๋ชซ์„ ์ง์Šน์˜ ์ˆ˜์—์„œ ๋นผ์ฃผ๊ธฐ
        if quotient == 1 and division == 2:
            twin_horn += 1
        elif quotient == 1 and division == 1:
            unicorn += 1
    print(f"#{test_case} {unicorn} {twin_horn + 1}")

 

์œ„ ์ฝ”๋“œ๊ฐ€ ํ‹€๋ฆฐ ์ด์œ 

์ด ๋ฌธ์ œ์˜ ์กฐ๊ฑด์—์„œ๋Š” ๋ฟ”์ด ํ•œ ๊ฐœ ๋‹ฌ๋ฆฐ ์œ ๋‹ˆ์ฝ˜๊ณผ ๋ฟ”์ด ๋‘ ๊ฐœ ๋‹ฌ๋ฆฐ ํŠธ์œˆํ˜ผ์˜ ์ˆ˜๊ฐ€ ํŠน์ • ์—ฐ๋ฆฝ๋ฐฉ์ •์‹์„ ํ†ตํ•ด ๊ณ ์ •๋œ ๋น„์œจ๋กœ ๊ฒฐ์ •๋œ๋‹ค. ํ•˜์ง€๋งŒ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹์€ ์ผ์ •ํ•œ ํŒจํ„ด ์—†์ด ๋‚˜๋จธ์ง€๋ฅผ ์ œ๊ฑฐํ•˜๋ฉฐ ๊ฐ’์„ ์กฐ์ •ํ•˜๋ ค๋Š” ๋ฐฉ์‹์ด๋ผ, ์—ฐ๋ฆฝ๋ฐฉ์ •์‹์—์„œ ์š”๊ตฌํ•˜๋Š” ์ผ์ •ํ•œ ๊ด€๊ณ„๋ฅผ ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•œ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ฌธ์ œ์˜ ์กฐ๊ฑด์— ๋งž๋Š” ์œ ์ผํ•œ ํ•ด๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ž˜๋ชป๋œ ๊ฐ’์„ ๊ณ„์† ๋นผ๋‚ด์–ด ๊ฒฐ๊ตญ ์˜ค๋‹ต์„ ์ถœ๋ ฅํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

๋ชซ๊ณผ ๋‚˜๋จธ์ง€ ์ ‘๊ทผ์˜ ํ•œ๊ณ„

  • ์กฐ๊ฑด๊ณผ ๊ด€๊ณ„์—†๋Š” ์กฐ์ •
    • ๋ฌธ์ œ์—์„œ๋Š” ์ •ํ™•ํ•œ ์œ ๋‹ˆ์ฝ˜๊ณผ ํŠธ์œˆํ˜ผ์˜ ์ˆ˜๋ฅผ ์š”๊ตฌํ•˜์ง€๋งŒ, ๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋ฅผ ์ด์šฉํ•œ ์ ‘๊ทผ์€ ์ผ๊ด€๋œ ํŒจํ„ด์ด ์—†์œผ๋ฏ€๋กœ ์กฐ์ •์˜ ๊ธฐ์ค€์ด ์—†๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋‚˜๋จธ์ง€๋ฅผ ๋นผ๊ณ  ์กฐ๊ฑด์„ ๋งž์ถ”๋ ค๊ณ  ํ•ด๋„, ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ผ์ •ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค.
  • ์กฐ๊ฑด์„ ์ˆ˜ํ•™์ ์œผ๋กœ ์ถฉ์กฑ์‹œํ‚ค์ง€ ์•Š์Œ
    • ์ฃผ์–ด์ง„ ๋ฌธ์ œ์—์„œ๋Š” xx์™€ yy๊ฐ€ ํŠน์ •ํ•œ ๊ด€๊ณ„(x+y=Mx + y = M, x+2y=Nx + 2y = N)๋ฅผ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹์€ ์ด ๊ด€๊ณ„๋ฅผ ์ˆ˜ํ•™์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์˜ฌ๋ฐ”๋ฅธ ํ•ด๋ฅผ ์–ป์„ ์ˆ˜ ์—†๋‹ค.

๋”ฐ๋ผ์„œ ์ด ๋ฌธ์ œ๋Š” ์—ฐ๋ฆฝ๋ฐฉ์ •์‹์„ ์ด์šฉํ•˜์—ฌ ์œ ์ผํ•œ ํ•ด๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์ด ์ ์ ˆํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋Š” ์œ ๋‹ˆ์ฝ˜๊ณผ ํŠธ์œˆํ˜ผ์˜ ์ˆ˜๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 


 

728x90