ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 2477 ์ฐธ์™ธ๋ฐญ with Python
    PS 2022. 2. 14. 18:20
    728x90
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ“Œ BOJ 2477 ์ฐธ์™ธ๋ฐญ

    ๐Ÿ’ก ์กฐ๊ฑด

    1. m2์˜ ๋„“์ด์— ์ž๋ผ๋Š” ์ฐธ์™ธ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์–‘์˜ ์ •์ˆ˜ K (1 โ‰ค K โ‰ค 20)

    2. ์ฐธ์™ธ๋ฐญ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์œก๊ฐํ˜•์˜ ์ž„์˜์˜ ํ•œ ๊ผญ์ง“์ ์—์„œ ์ถœ๋ฐœํ•˜์—ฌ
      ๋ฐ˜์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ๋‘˜๋ ˆ๋ฅผ ๋Œ๋ฉด์„œ ์ง€๋‚˜๋Š” ๋ณ€์˜ ๋ฐฉํ–ฅ๊ณผ ๊ธธ์ด (1 ์ด์ƒ 500 ์ดํ•˜์˜ ์ •์ˆ˜)

    3. ๋ณ€์˜ ๋ฐฉํ–ฅ์—์„œ ๋™์ชฝ์€ 1, ์„œ์ชฝ์€ 2, ๋‚จ์ชฝ์€ 3, ๋ถ์ชฝ์€ 4๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค.

    4. ์ฐธ์™ธ๋ฐญ์€ ใ„ฑ-์ž ๋ชจ์–‘์ด๊ฑฐ๋‚˜ ใ„ฑ-์ž๋ฅผ 90๋„, 180๋„, 270๋„ ํšŒ์ „ํ•œ ๋ชจ์–‘(โ”, โ”—, โ”› ๋ชจ์–‘)์˜ ์œก๊ฐํ˜•์ด๋‹ค.

    5. ๊ตฌํ˜„ ์œ ํ˜•์˜ ๋ฌธ์ œ

    ๐Ÿ–ฅ ์†Œ์Šค ์ฝ”๋“œ

    from sys import stdin
    
    n = int(stdin.readline())
    nums = []
    x, y = [], []
    for _ in range(6):
        direction, length = map(int, stdin.readline().split())
        nums.append(length)
        if direction == 1 or direction == 2:
            x.append(length)
        else:
            y.append(length)
    
    max_x = max(x)
    max_y = max(y)
    xi = nums.index(max_x)
    yi = nums.index(max_y)
    
    if xi + 1 >= 6:
        x = abs(nums[xi - 1] - nums[0])
    else:
        x = abs(nums[xi - 1] - nums[xi + 1])
    
    if yi + 1 >= 6:
        y = abs(nums[yi - 1] - nums[0])
    else:
        y = abs(nums[yi - 1] - nums[yi + 1])
    
    print(((max_x * max_y) - (x * y)) * n)

    ๐Ÿ”– ์˜ˆ์ œ ๋ฐ ์‹คํ–‰๊ฒฐ๊ณผ

    ์˜ˆ์ œ

    7
    4 50
    2 160
    3 30
    1 60
    3 20
    1 100

    ์‹คํ–‰๊ฒฐ๊ณผ

    47600

    โŒจ๏ธ ๋ฌธ์ œ ํ’€์ด

    1. 6๊ฐœ์˜ ๋ฐฉํ–ฅ๊ณผ ๋ณ€์˜ ๊ธธ์ด๋ฅผ ๊ฐ๊ฐ direction, length ๋ผ๋Š” ๋ณ€์ˆ˜์— ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค
      ๋™์‹œ์—, ๋ณ€์˜ ๊ธธ์ด๋Š” nums ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•ด์ฃผ๊ณ , direction์ด 1 ์ด๊ฑฐ๋‚˜ 2 ์ผ ๋•Œ x ๋ฆฌ์ŠคํŠธ์—, ์•„๋‹ ๊ฒฝ์šฐ์—๋Š” y ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•œ๋‹ค.

    2. x ์ถ•์œผ๋กœ ์›€์ง์ด๋Š” ๋ณ€์˜ ๊ธธ์ด ์ค‘ ๊ฐ€์žฅ ๊ธด ๊ฒƒ์„ max_x ์— ์ €์žฅํ•œ๋‹ค.
      y ์ถ•์œผ๋กœ ์›€์ง์ด๋Š” ๋ณ€์˜ ๊ธธ์ด ์ค‘ ๊ฐ€์žฅ ๊ธด ๊ฒƒ์„ max_y ์— ์ €์žฅํ•œ๋‹ค.

    3. (2)์—์„œ ๊ตฌํ•œ max_x, max_y ๊ฐ’์ด x ๋ฆฌ์ŠคํŠธ, y ๋ฆฌ์ŠคํŠธ์—์„œ ์ธ๋ฑ์Šค ๊ฐ’์ด ๋ช‡์ธ์ง€ ๊ตฌํ•œ๋‹ค.

    4. ๊ฐ€์žฅ ๊ธด ๊ฐ€๋กœ๋ณ€(xi) ์–‘์ธก์— ์žˆ๋Š” ๊ฐ€๋กœ ๋ณ€์˜ ๊ธธ์ด ์˜ ์ฐจ์ด๊ฐ€ ์ „์ฒด ์‚ฌ๊ฐํ˜• ๊ธธ์ด์—์„œ ๋‚ด๊ฐ€ ๋นผ์ค„ ์‚ฌ๊ฐํ˜•์˜ ๊ฐ€๋กœ ๊ธธ์ด
      ๋งŒ์•ฝ xi + i ๊ฐ€ 6๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด nums[xi-1] - nums[0]

    5. ๊ฐ€์žฅ ๊ธด ์„ธ๋กœ๋ณ€(xi) ์–‘์ธก์— ์žˆ๋Š” ์„ธ๋กœ ๋ณ€์˜ ๊ธธ์ด ์˜ ์ฐจ์ด๊ฐ€ ์ „์ฒด ์‚ฌ๊ฐํ˜• ๊ธธ์ด์—์„œ ๋‚ด๊ฐ€ ๋นผ์ค„ ์‚ฌ๊ฐํ˜•์˜ ์„ธ๋กœ ๊ธธ์ด
      ๋งŒ์•ฝ yi + i ๊ฐ€ 6๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด nums[yi-1] - nums[0]

    6. ์‚ฌ๊ฐํ˜• ์ตœ๋Œ€ ๋„“์ด - ์ž‘์€ ์‚ฌ๊ฐํ˜•์˜ ๋„“์ด๋ฅผ ๊ตฌํ•œ๋‹ค.

      • ์‚ฌ๊ฐํ˜• ์ตœ๋Œ€ ๋„“์ด : max_x * max_y
      • ์ž‘์€ ์‚ฌ๊ฐํ˜• ๋„“์ด : x * y
    7. ๋ฉด์  ๋‹น ์ฐธ์™ธ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•ด์•ผํ•˜๋‹ˆ, (6)์—์„œ ๊ตฌํ•œ ๋ฉด์ ์— * n ์„ ํ•ด์ค€ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

    ๐Ÿ’พ ๋А๋‚€์ 

    1. ๋ฌธ์ œ ํ’€์ด์— ์จ๋†“์€ 4, 5๋ฒˆ ์„ ๋– ์˜ฌ๋ฆฌ์ง€ ๋ชปํ•ด์„œ ํ—ค๋งธ๋˜ ๋ฌธ์ œ์˜€๋‹ค.
    2. ๋ธ”๋กœ๊ทธ๋ฅผ ์“ฐ๋ ค๊ณ  ๋‹ค์‹œ ๋ณด๋Š”๋ฐ ๋˜ ํ—ท๊ฐˆ๋ ค์„œ ๋‹ค์‹œ ํ’€์—ˆ๋‹ค.
    3. ์ด๋Ÿฐ ์ˆ˜ํ•™์ ์ธ ์‚ฌ๊ณ ๋ฅผ ํ•˜๋Š” ๋ฌธ์ œ, DP ๋ฌธ์ œ๋Š” ์•„์ง๋„ ์–ด๋ ต๋‹ค.
    4. ์—ฐ์Šต๋งŒ์ด ์‚ด๊ธธ์ด๋‹ค. ๋‹ค์‹œ ํ•œ ๋ฒˆ ์“ฐ๋ฉด์„œ ์ƒ๊ฐํ•ด๋ณด๊ณ  ํ’€์–ด์„œ ๋‹คํ–‰์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.