[๋ฐฑ์ค€] 6064 ์นด์ž‰ ๋‹ฌ๋ ฅ (python ํŒŒ์ด์ฌ)

2022. 7. 6. 22:26ยท๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

https://www.acmicpc.net/problem/6064

 

6064๋ฒˆ: ์นด์ž‰ ๋‹ฌ๋ ฅ

์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋Š” ํ‘œ์ค€ ์ž…๋ ฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ž…๋ ฅ์€ T๊ฐœ์˜ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์ž…๋ ฅ์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋Š” ํ•œ ์ค„๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

www.acmicpc.net

 

๋ค


์•„์ด๋””์–ด

1. ์‹œ๊ฐ„ ์ดˆ๊ณผ

  • ์ฒ˜์Œ์—๋Š” x, y๊ฐ’์ด ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ 1์”ฉ ๋”ํ•ด๊ฐ€๋ฉฐ count๋ฅผ ํ–ˆ๋‹ค. ์ˆซ์ž๊ฐ€ ๋ฐ˜๋ณต๋˜๋ฉด -1์„ ์ถœ๋ ฅํ•˜๊ฒŒ ํ–ˆ๋‹ค.
  • ์ƒ๊ฐ์ด ๋„ˆ๋ฌด ์‰ฌ์› ๋Š”์ง€ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.
  • ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •

์ฝ”๋“œ ์„ค๋ช…

def find_K(M, N, x, y):
    K = x

    while K <= M * N:
        if (K - x) % M == 0 and (K - y) % N == 0:
            return K
        K += M
    return -1

 

๋ฐฑ์ค€์— ์žˆ๋Š” ์ฒซ ๋ฒˆ์งธ ์˜ˆ์ œ ์ผ€์ด์Šค 10 12 3 9๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๊ตฌํ•  ์ˆซ์ž๋ฅผ K๋ผ๊ณ  ํ•˜์ž.

๊ทธ๋Ÿผ ๊ทธ K๋ผ๋Š” ์ˆซ์ž๋Š” K = 10 * p + 3 = 12 * q + 9๋ฅผ ๋งŒ์กฑํ•œ๋‹ค. (์—ฌ๊ธฐ์„œ p, q๋Š” ์ž์—ฐ์ˆ˜)

์‹์„ ๋ณ€ํ˜•ํ•ด์„œ ๋ณด๋ฉด (K - 3)์€ 10์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๊ณ , (K - 9)์€ 12๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง„๋‹ค.

์ด๋ฅผ ๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์„œ ์จ๋ณด๋ฉด (K - x)๋Š” M์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๊ณ , (K - y)๋Š” N์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง„๋‹ค.

 

์ด๊ฑธ ์ฝ”๋“œ์— ์ ์šฉํ•˜๋ฉด ๋œ๋‹ค. 

K๊ฐ’์€ M * N์„ ๋„˜์ง€ ์•Š์œผ๋ฏ€๋กœ K๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ ์œ„ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค.

๊ทผ๋ฐ ์—ฌ๊ธฐ์„œ ๊ทธ๋ƒฅ K๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด ๋˜ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋‚œ๋‹ค. 

 

K๊ฐ’์„ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๊ฒฐ๊ตญ K๊ฐ’์€ M * p + x ๋˜๋Š” N * q + y์ด๋ฏ€๋กœ 

K์˜ ์ดˆ๊ธฐ๊ฐ’์„ x๋กœ ์„ ์–ธํ•˜๊ณ  K๊ฐ’์„ M๋งŒํผ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ ํ™•์ธํ•ด๋ณด๋ฉด ๋œ๋‹ค.

x๋Œ€์‹  y, M ๋Œ€์‹  N์„ ์‚ฌ์šฉํ•ด๋„ ๋จ.


์ „์ฒด ์ฝ”๋“œ

import sys
T = int(input())

def find_K(M, N, x, y):
    K = x

    while K <= M * N:
        if (K - x) % M == 0 and (K - y) % N == 0:
            return K
        K += M
    return -1

for _ in range(T):
    M, N, x, y = map(int, sys.stdin.readline().rstrip().split())
    print(find_K(M, N, x, y))

 

 

 

'๐Ÿงฉ Problem Solving > [๋ฐฑ์ค€]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 1043 ๊ฑฐ์ง“๋ง (python ํŒŒ์ด์ฌ)  (0) 2022.07.09
[๋ฐฑ์ค€] 2467 ์šฉ์•ก (python ํŒŒ์ด์ฌ)  (0) 2022.07.09
[๋ฐฑ์ค€] 11403 ๊ฒฝ๋กœ์ฐพ๊ธฐ (python ํŒŒ์ด์ฌ)  (0) 2022.07.06
[๋ฐฑ์ค€] 16236 ์•„๊ธฐ ์ƒ์–ด (python ํŒŒ์ด์ฌ)  (0) 2022.07.05
[๋ฐฑ์ค€] 17626 Four Squares (python ํŒŒ์ด์ฌ)  (0) 2022.07.05
'๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 1043 ๊ฑฐ์ง“๋ง (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 2467 ์šฉ์•ก (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 11403 ๊ฒฝ๋กœ์ฐพ๊ธฐ (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 16236 ์•„๊ธฐ ์ƒ์–ด (python ํŒŒ์ด์ฌ)
์ œ๋ด‰์•„
์ œ๋ด‰์•„
  • ์ œ๋ด‰์•„
    Overthinking
    ์ œ๋ด‰์•„
    fake it till you make it.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (104)
      • ๐Ÿงฉ Problem Solving (83)
        • [๋ฐฑ์ค€] (74)
        • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] (7)
        • [SW Expert Academy] (1)
        • [์•Œ๊ณ ๋ฆฌ์ฆ˜ for PS] (1)
      • ๐Ÿ“ฆ Data Structure (2)
      • ๐Ÿ“œ Language (14)
        • [python] (14)
      • ๐Ÿ–ค Git (1)
      • ๐ŸŒ† ์ผ์ƒ (2)
        • ๐Ÿ’ฌ ๋ฒฝ๋ณด๊ณ  ๋งํ•˜๊ธฐ (2)
      • ๐Ÿ—„๏ธ ๊ธฐํƒ€ (2)
      • ๐Ÿ”ต css (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ํŒฐ๋ฆฐ๋“œ๋กฌ
    slicing
    ๋ถ€๋ถ„ํ•ฉ
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ํˆฌํฌ์ธํ„ฐ
    ๋ฐ๋ธŒ์ฝ”์Šค
    ๋ƒ…์ƒ‰
    ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ
    Bruteforce
    ์œ„์ƒ์ •๋ ฌ
    ์žฌ๊ท€
    DFS
    ๋‹ค์ต์ŠคํŠธ๋ผ
    ๊ทธ๋ฆฌ๋””
    ์Šคํƒ
    SWEA
    BFS
    ๋ˆ„์ ํ•ฉ
    boj
    ๋ธŒ๋ฃจํŠธํฌ์Šค
    ๋ฐฑํŠธ๋ž˜ํ‚น
    ๋ฐฑ์ค€
    DP
    ๋ถ„ํ•  ์ •๋ณต
    imos
    ํ”Œ๋กœ์ด๋“œ์›Œ์…œ
    ์ •์ฒ˜๊ธฐ
    Python
    ํŒŒ์ด์ฌ
    ๊ตฌํ˜„
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ œ๋ด‰์•„
[๋ฐฑ์ค€] 6064 ์นด์ž‰ ๋‹ฌ๋ ฅ (python ํŒŒ์ด์ฌ)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”