ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 16507 ์–ด๋‘์šด ๊ฑด ๋ฌด์„œ์›Œ with Python
    PS 2021. 9. 12. 22:35
    728x90
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ“Œ BOJ 16507 ์–ด๋‘์šด ๊ฑด ๋ฌด์„œ์›Œ

    ๐Ÿ’ก ์กฐ๊ฑด ๋ฐ ํ’€์ด

    1. ์‚ฌ์ง„ ํฌ๊ธฐ๋ฅผ ์˜๋ฏธํ•˜๋Š” 1 <= R, C <= 1000
    2. ์‚ฌ์ง„ ์ผ๋ถ€๋ถ„์˜ ๋ฐ๊ธฐ ํ‰๊ท ์„ ์•Œ์•„๋ณผ ๊ฐœ์ˆ˜ Q
    3. Q๊ฐœ์˜ ๊ฐ ์ค„์—๋Š” ์‚ฌ์ง„์˜ ์ผ๋ถ€๋ถ„์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ๋‘ ๊ผญ์ง“์ ์„ ์˜๋ฏธํ•˜๋Š” ์ •์ˆ˜ r1, c1, r2, c2 ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.
      (1 ≤ r1 ≤ r2 ≤ R, 1 ≤ c1 ≤ c2 ≤ C)
    4. ๋ˆ„์ ํ•ฉ ๋ฌธ์ œ
    5. Q๊ฐœ์˜ ๊ฐ ์ค„์— ์ฃผ์–ด์ง„ ์‚ฌ์ง„์—์„œ ๋‘ ์  (r1, c1)๊ณผ (r2, c2)๋ฅผ ๊ผญ์ง“์ ์œผ๋กœ ํ•˜๋Š” ์ง์‚ฌ๊ฐํ˜•์˜ ๋ฐ๊ธฐ ํ‰๊ท ์„ ์ถœ๋ ฅํ•œ๋‹ค.
    6. ํ‰๊ท ์€ ์ •์ˆ˜ ๋‚˜๋ˆ—์…ˆ์œผ๋กœ ๋ชซ๋งŒ ์ทจํ•œ๋‹ค.

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

    from sys import stdin
    
    r, c, q = map(int, stdin.readline().split())
    pic = [[0] * (c + 1)]
    for i in range(r):
        sum_list = [0]
        data = list(map(int, stdin.readline().split()))
        sum_list.append(data[0])
        for i in range(1, c):
            sum_list.append(sum_list[-1] + data[i])
        pic.append(sum_list)
    
    for _ in range(q):
        a, b, c, d = map(int, stdin.readline().split())
        addr = [(a, b), (c, d)]
        addr.sort(key=lambda x: x[0])
        res = 0
    
        knife = (abs(addr[0][0]-addr[1][0]) + 1) * (abs(addr[0][1]-addr[1][1]) + 1)
        for i in range(addr[0][0], addr[1][0] + 1):
            res += pic[i][addr[1][1]] - pic[i][addr[0][1] - 1]
    
        print(res // knife)

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

    ์˜ˆ์ œ

    5 6 1
    4 1 3 4 9 5
    1 2 8 7 5 5
    8 1 2 5 3 2
    1 5 3 4 2 5
    5 2 1 2 3 5
    2 2 4 5

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

    3

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

    1. ๋ˆ„์ ํ•ฉ ๋ฌธ์ œ๋‹ค.
    2. ๊ผญ์ง€์ ์„ ์˜๋ฏธํ•˜๋Š” ์ •์ˆ˜๊ฐ€ 1๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๊ธฐ์— ์ธ๋ฑ์Šค ์—๋Ÿฌ๋ฅผ ์กฐ์‹ฌํ•ด์•ผํ•œ๋‹ค.
      ๊ทธ๋ž˜์„œ ๋‚˜๋Š” (R + 1) * (C + 1) ํฌ๊ธฐ๋ฆ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ์ฝ”๋“œ๋„ ๋‹จ์ˆœํ™” ์‹œ์ผฐ๋‹ค.
    3. ์ž…๋ ฅ ๋ฐ›์€ R * C ํฌ๊ธฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐ์—ด์— ๋„ฃ๊ณ  ๋ˆ„์ ํ•ฉ์„ ๊ตฌํ•ด ๋ฐฐ์—ด์— ๋„ฃ์–ด์ค€๋‹ค.
    4. ๊ผญ์ง€์  ์ขŒํ‘œ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ x์ขŒํ‘œ์˜ ํฌ๊ธฐ๋ฅผ ์˜คํ””์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ์‹œ์ผฐ๋‹ค.
      ๊ฐ€์žฅ ์™ผ์ชฝ์— ์œ„์น˜ํ•˜๊ณ  ์žˆ๋Š” ์ขŒํ‘œ๋ฅผ ์ฐพ์œผ๋ ค๊ณ  ํ–ˆ๋‹ค.
    5. ์ง์‚ฌ๊ฐํ˜•์˜ ํฌ๊ธฐ๋ฅผ ์•Œ์•„์•ผ ๋ˆ„์ ํ•ฉ์„ ์ด์šฉํ•ด ์ฐพ์€ ๋ฐ๊ธฐ์˜ ํ•ฉ๋„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.
      ๊ทธ๋ž˜์„œ ์ •๋ ฌ ์‹œํ‚จ ์ขŒํ‘œ๋ฅผ ์‚ฌ์šฉํ•ด ์ง์‚ฌ๊ฐํ˜•์˜ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ–ˆ๋‹ค.
      (abs(addr[0][0]-addr[1][0]) + 1) * (abs(addr[0][1]-addr[1][1]) + 1)
    6. ๋ฐฐ์—ด์˜ ๊ฐ ๊ฐ€๋กœ์ค„๋งˆ๋‹ค ๋”ฐ๋กœ ๊ณ„์‚ฐ์„ ํ•ด์ฃผ์—ˆ๋‹ค.
      ๋ˆ„์ ํ•ฉ์˜ ์„ฑ์งˆ์€ ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
      [4, 5, 8, 12, 21, 26] ์˜ ๋ฐฐ์—ด์ด ์žˆ์„ ๋•Œ, ๋ฐฐ์—ด์˜ ๋‘๋ฒˆ์งธ ์›์†Œ๋ถ€ํ„ฐ ๋„ค๋ฒˆ์งธ ์›์†Œ์˜ ํ•ฉ์„ ๊ตฌํ•˜๋ ค๊ณ ํ•œ๋‹ค.
      ๊ทธ๋ ‡๋‹ค๋ฉด ๋„ค๋ฒˆ์งธ ์›์†Œ์—์„œ ์ฒซ๋ฒˆ์งธ ์›์†Œ์˜ ๊ฐ’์„ ๋นผ์ฃผ๋ฉด ๊ตฌํ•˜๋ ค๋Š” ๊ฐ’์ด ๋œ๋‹ค.

    ๐Ÿ’พ ๋Š๋‚€์ 

    • ๋ˆ„์ ํ•ฉ์˜ ๊ฐœ๋…๊ณผ ์›๋ฆฌ, ์„ฑ์งˆ์„ ์•„๋ฅด๋ฐ”์ดํŠธ ์ถœ๊ทผํ•˜๋ฉด์„œ ์ง€ํ•˜์ฒ ์—์„œ ๋ณธ ๊ฒƒ์ด ํฐ ๋„์›€์ด ๋˜์—ˆ๋‹ค.
    • ์ธ๋ฑ์Šค ์—๋Ÿฌ๊ฐ€ ์‰ฝ๊ฒŒ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ๋‹ค๋ฅธ ํ’€์ด๋„ ์ƒ๊ฐํ•ด๋ณด์•˜์ง€๋งŒ ํฐ ๋„์›€์€ ๋˜์ง€ ์•Š์•˜๋‹ค.
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.