deo2kim
๋งž์™œํ‹€
deo2kim
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • CS
      • Algorithm
      • Data Structure
      • Network
      • DB
      • OS
    • Algorithm Problem
      • Python
      • JavaScript
    • Programming language
      • Python
      • JavaScript
    • Tool
      • Jquery
      • React
    • ๊ฐœ๋ฐœ
    • Infra

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

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

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

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

๋ฐ˜์‘ํ˜•
hELLO ยท Designed By ์ •์ƒ์šฐ.
deo2kim

๋งž์™œํ‹€

[python] ๋ฐฑ์ค€ - 21608. ์ƒ์–ด ์ดˆ๋“ฑํ•™๊ต
Algorithm Problem/Python

[python] ๋ฐฑ์ค€ - 21608. ์ƒ์–ด ์ดˆ๋“ฑํ•™๊ต

2021. 9. 15. 21:17
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

  • ์‹œ๋ฎฌ๋ ˆ์ด์…˜

 

  1. ํ•™์ƒ: *์นœ๊ตฌ๋“ค ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋งŒ๋“ ๋‹ค.
  2. ๋ฌธ์ œ์˜ ํฌ๊ธฐ๊ฐ€ ํฌ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด์ค‘ ํฌ๋ฌธ์œผ๋กœ ๊ต์‹ค ์ „์ฒด๋ฅผ ํƒ์ƒ‰
  3. ์ข‹์•„ํ•˜๋Š” ์‚ฌ๋žŒ ์˜†์ž๋ฆฌ์™€ ๋นˆ์ž๋ฆฌ ๊ฐœ์ˆ˜๋ฅผ ๊ฐ๊ฐ ์ฒดํฌํ•ด์ค€๋‹ค.
    1. ์ข‹์•„ํ•˜๋Š” ์‚ฌ๋žŒ ์˜†์ž๋ฆฌ ์ˆ˜
    2. ๋นˆ์ž๋ฆฌ ์ˆ˜
    3. ์ˆœ์„œ๋กœ ์ฒดํฌํ•ด๊ฐ€๋ฉฐ ํฐ ๊ฐ’์„ ์—…๋ฐ์ดํŠธ ํ•ด์ค€๋‹ค.
    4. ์ธ๋ฑ์Šค๊ฐ€ ์ž‘์€ ๊ฐ’๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™๋‹ค๋ฉด ํ–‰๋ฒˆํ˜ธ, ์—ด๋ฒˆํ˜ธ๊ฐ€ ์ž‘์€ ์ž๋ฆฌ๊ฐ€ ์„ ํƒ๋˜๊ฒŒ ๋œ๋‹ค.
  4. ๋‹ค ์ฐพ์•˜์œผ๋ฉด ๊ต์‹ค ์ „์ฒด๋ฅผ ๋Œ๋ฉฐ ๋งŒ์กฑ๋„ ์กฐ์‚ฌ
  5. ๋

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

import sys

input = sys.stdin.readline


def is_in(ix, iy, n):
    if 0 <= ix < n and 0 <= iy < n:
        return True
    return False


N = int(input())

# ํ•™์ƒ: *์ข‹์•„ํ•˜๋Š” ์นœ๊ตฌ๋“ค ๋”•์…”๋„ˆ๋ฆฌ
like_friends = {}
for _ in range(N ** 2):
    student, *friends = list(map(int, input().split()))
    like_friends[student] = friends

# ๊ต์‹ค
classroom = [[0 for _ in range(N)] for _ in range(N)]

dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1]
for stu, likes in like_friends.items():
    max_like = 0  # ๋ถ™์–ด์žˆ๋Š” ์ž๋ฆฌ์— ์ข‹์•„ํ•˜๋Š” ์ตœ๋Œ€
    max_blank = 0  # ๋ถ™์–ด์žˆ๋Š” ์ž๋ฆฌ์— ๋นˆ์ž๋ฆฌ ์ตœ๋Œ€
    loc = -1, -1  # ๊ทธ ์œ„์น˜
    for i in range(N):
        for j in range(N):
            if classroom[i][j] != 0:  # ์ž๋ฆฌ๊ฐ€ ๋น„์–ด์žˆ๋Š” ๊ฒฝ์šฐ๋งŒ
                continue

            if loc == (-1, -1):  # ์ฃผ์˜! ๋นˆ์ž๋ฆฌ๋‚˜ ์ข‹์•„ํ•˜๋Š” ์นœ๊ตฌ๊ฐ€ ์žˆ๋Š” ์ž๋ฆฌ๊ฐ€ ๋ชจ๋‘ 0์ผ ์ˆ˜ ์žˆ๋‹ค.
                loc = i, j  # ์ฒ˜์Œ ๋‚˜์˜ค๋Š” ๋นˆ์ž๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ง„ํ–‰
            blank = 0
            like = 0
            for k in range(4):
                nx = i + dx[k]
                ny = j + dy[k]
                if is_in(nx, ny, N):
                    if classroom[nx][ny] == 0:  # 1. ๋นˆ์ž๋ฆฌ
                        blank += 1
                    elif classroom[nx][ny] in like_friends[stu]:  # 2. ์ข‹์•„ํ•˜๋Š” ํ•™์ƒ ์ž๋ฆฌ
                        like += 1

            if like > max_like or (like == max_like and blank > max_blank):
                # 1. ์ข‹์•„ํ•˜๋Š” ์‚ฌ๋žŒ ์˜†์ž๋ฆฌ, 2. ๊ฐ™์œผ๋ฉด ๋นˆ์ž๋ฆฌ
                max_blank = blank
                max_like = like
                loc = i, j

    x, y = loc
    classroom[x][y] = stu

    # td(classroom)

# ์ ์ˆ˜ ๊ณ„์‚ฐ
total = 0
satisfaction = [0, 1, 10, 100, 1000]
for i in range(N):
    for j in range(N):
        stu = classroom[i][j]
        like = 0
        for k in range(4):
            nx = i + dx[k]
            ny = j + dy[k]
            if is_in(nx, ny, N) and classroom[nx][ny] in like_friends[stu]:
                like += 1

        total += satisfaction[like]

print(total)

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: BACKJOON ONLINE JUDGE

 

 

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Algorithm Problem > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์œ„ํด๋ฆฌ์ฑŒ๋ฆฐ์ง€ 7์ฃผ์ฐจ  (0) 2021.09.17
[python] ๋ฐฑ์ค€ - 2485. ๊ฐ€๋กœ์ˆ˜  (0) 2021.09.16
[python] ๋ฐฑ์ค€ - 1347. ๋ฏธ๋กœ ๋งŒ๋“ค๊ธฐ  (0) 2021.09.14
[python] ๋ฐฑ์ค€ - 12764. ์‹ธ์ง€๋ฐฉ์— ๊ฐ„ ์ค€ํ•˜  (0) 2021.09.11
[python] ๋ฐฑ์ค€ - 11085. ๊ตฐ์‚ฌ ์ด๋™  (0) 2021.09.10
    'Algorithm Problem/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์œ„ํด๋ฆฌ์ฑŒ๋ฆฐ์ง€ 7์ฃผ์ฐจ
    • [python] ๋ฐฑ์ค€ - 2485. ๊ฐ€๋กœ์ˆ˜
    • [python] ๋ฐฑ์ค€ - 1347. ๋ฏธ๋กœ ๋งŒ๋“ค๊ธฐ
    • [python] ๋ฐฑ์ค€ - 12764. ์‹ธ์ง€๋ฐฉ์— ๊ฐ„ ์ค€ํ•˜
    deo2kim
    deo2kim
    ์ฝ”๋”ฉ ๊ธฐ๋กํ•˜๊ธฐ

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