Hiya_
๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ
Hiya_
Github
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (154)
    • ๐Ÿ’ปBackend (10)
      • ๋ผ์ด์ง•์บ ํ”„ (6)
      • SSAFY | ์‹ธํ”ผ (2)
      • ์‹ ํ•œDS ๊ธˆ์œตSW ์•„์นด๋ฐ๋ฏธ (2)
    • ๐Ÿ“๋ฌธ์ œ ํ’€์ด (102)
      • ๐ŸงฉBaekjoon (47)
      • ๐ŸงฉProgrammers (42)
      • ๐ŸงฉSWExpertAcademy (10)
      • ๐ŸงฉSofteer (3)
    • ๐Ÿ“‚Language (31)
      • Python (3)
      • JAVA (2)
      • SQL (6)
      • English (19)
    • โœจUseful information (5)
    • ๐Ÿ”‘Algorithms (3)
    • ๐Ÿ™Git (2)

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

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

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ํ† ์ตRC
  • ๊ตฌํ˜„
  • ํ•ด์ปค์Šคํ† ์ต
  • ๋‚ด์žฅํ•จ์ˆ˜
  • ์˜ค๋ธ”์™„
  • ๋ฆฌ์ŠคํŠธ
  • BaekJoon
  • ๊ทธ๋ฆฌ๋””
  • ํ† ์ต๊ณต๋ถ€
  • ํ† ์ต๊ธฐ์ถœ
  • ์ฝ”ํ…Œ
  • ์™„์ „ํƒ์ƒ‰
  • mysql
  • ํ† ์ต๋ฌด๋ฃŒ์ž๋ฃŒ
  • ํ† ์ต๋…ํ•™
  • BFS
  • ํ† ์ต์ ์ˆ˜
  • sort
  • ๋ฐฑ์ค€
  • ์ •๋ ฌ
  • ํ† ์ต๋ฌด๋ฃŒ๊ฐ•์˜
  • greedy algorithm
  • ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
  • 2์ฐจ์› ๋ฐฐ์—ด
  • Python
  • UNION ALL
  • ํ† ์ต์‹œํ—˜
  • ๋‹ค์ต์ŠคํŠธ๋ผ
  • Union
  • ํ•ด์ปค์ŠคํŒŒ๋žญ์ด

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

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ


Owner : ๊น€์‹ ์˜
Naver Blog

hELLO ยท Designed By ์ •์ƒ์šฐ.
Hiya_

๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ

๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉBaekjoon

[Python] ๋ฐฑ์ค€ 16924 ์‹ญ์ž๊ฐ€ ์ฐพ๊ธฐ | ์™„์ „ ํƒ์ƒ‰ | ๋ธŒ๋ฃจํŠธํฌ์Šค(Brute-force)

2023. 3. 1. 20:07

~์‹ค๋ฒ„ 2~

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

 

16924๋ฒˆ: ์‹ญ์ž๊ฐ€ ์ฐพ๊ธฐ

์‹ญ์ž๊ฐ€๋Š” ๊ฐ€์šด๋ฐ์— '*'๊ฐ€ ์žˆ๊ณ , ์ƒํ•˜์ขŒ์šฐ ๋ฐฉํ–ฅ์œผ๋กœ ๋ชจ๋‘ ๊ฐ™์€ ๊ธธ์ด์˜ '*'๊ฐ€ ์žˆ๋Š” ๋ชจ์–‘์ด๋‹ค. ์‹ญ์ž๊ฐ€์˜ ํฌ๊ธฐ๋Š” ๊ฐ€์šด๋ฐ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ƒํ•˜์ขŒ์šฐ ๋ฐฉํ–ฅ์œผ๋กœ ์žˆ๋Š” '*'์˜ ๊ฐœ์ˆ˜์ด๋‹ค. ์‹ญ์ž๊ฐ€์˜ ํฌ๊ธฐ๋Š” 1๋ณด๋‹ค ํฌ

www.acmicpc.net

 

 

[๊ตฌํ˜„ ํฌ์ธํŠธ]

๋”๋ณด๊ธฐ

1. ์ œ๊ณต๋œ ์ž…๋ ฅ ์™ธ ์‹ญ์ž๊ฐ€ ๋ฐœ๊ฒฌ์‹œ '*'์„ '.'์œผ๋กœ ๋ณ€๊ฒฝํ•  ๊ณต๊ฐ„ deepcopy

2. ์™„์ „ํƒ์ƒ‰ํ•˜๋ฉฐ '*' ๋ฐœ๊ฒฌ์‹œ ์ธ๋ฑ์Šค๋ฅผ ๋„“ํ˜€ ์‹ญ์ž ๋ชจ์–‘ ํ™•์ธ

3. 2๋ฅผ ์‹ญ์ž ๋ชจ์–‘์ผ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต

- ๋ฐ˜๋ณต๋งˆ๋‹ค ์‚ฌ์ด์ฆˆ += 1

- ๋ฆฌ์ŠคํŠธํ˜• ๋ณ€์ˆ˜์— (i, j, size) ์ถ”๊ฐ€

- ์‹ญ์ž ๋ชจ์–‘์— ๋Œ€ํ•ด '.' ์ฒ˜๋ฆฌ

4. ์™„์ „ํƒ์ƒ‰ ํ›„ ์‹ญ์ž๋ชจ์–‘์œผ๋กœ '.'์ฒ˜๋ฆฌํ•œ ๊ณต๊ฐ„์— '*'๊ฐ€ ์žˆ๋‹ค๋ฉด -1 ๋ฐ˜ํ™˜

5. ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด result์˜ ํฌ๊ธฐ์™€ ๊ฐ’๋“ค ์ถœ๋ ฅ

+

 ํ•„์ž๋Š” ๋ฌธ์ž์—ด์„ ๋ฆฌ์ŠคํŠธ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ—ท๊ฐˆ๋ ค์„œ ์ฐพ์•„๋ณด์•˜์—ˆ๋‹ค.

 


[์ตœ์ข…์ฝ”๋“œ]

import sys
import copy

input = sys.stdin.readline

N, M = map(int, input().split())
result = []
board = []

for _ in range(N):  # ์ž…๋ ฅ์„ board์— ์ €์žฅ
    line = list(input())
    board.append(line)

tempBoard = copy.deepcopy(board)  # '*' -> '.' ์ฒ˜๋ฆฌํ•  ๊ณต๊ฐ„, ๋‹จ์ˆœ copy์‹œ ์ฃผ์†Œ๊ฐ’์œผ๋กœ ์ €์žฅํ•จ
for i in range(1, N):
    for j in range(1, M):
        if board[i][j] == '*':  # ์‹ญ์ž์˜ ์ค‘์‹ฌ์ด ๋  ์ˆ˜๋„ ์žˆ๋Š” ์œ„์น˜
            up = down = i
            left = right = j
            size = 0
            while True:  # ์‹ญ์ž ๋ชจ์–‘์ผ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต
                up -= 1
                down += 1
                left -= 1
                right += 1
                if up >= 0 and down < N and left >= 0 and right < M and board[up][j] == '*' and board[down][j] == '*' and \
                        board[i][left] == '*' and board[i][right] == '*':
                    size += 1
                    tempBoard[up][j] = tempBoard[down][j] = tempBoard[i][left] = tempBoard[i][right] = '.'
                    result.append((i + 1, j + 1, size))
                else:  # ๋”์ด์ƒ ์‹ญ์ž ๋ชจ์–‘์ด ์•„๋‹ ๋•Œ
                    if size > 0:  # ์‹ญ์ž ๋ชจ์–‘์ด ํ•˜๋‚˜ ์žˆ์—ˆ์„ ๋•Œ ์ค‘์‹ฌ์„ '.'๋กœ ๋ณ€๊ฒฝ
                        tempBoard[i][j] = '.'
                    break

temp = True  # ์‹ญ์ž๋ชจ์–‘์œผ๋กœ ์ง€์›Œ์ง€์ง€ ์•Š์€ '*'๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ๋ณ€์ˆ˜
for t in tempBoard:
    if '*' in t:
        temp = False
        print(-1)
        break
if temp:  # ์‹ญ์ž๋ชจ์–‘์œผ๋กœ ๋ชจ๋“  '*'์„ ์ง€์šด ๊ฒฝ์šฐ
    print(len(result))
    result.sort(key=lambda x: (x[0], x[1], -x[2]))
    for r in result:
        print(r[0], r[1], r[2])

 

 

 

 

 

 

 

 


REFERENCE

https://coolcode.tistory.com/5

 

[Python] ๋ฐฑ์ค€ 16924๋ฒˆ ์‹ญ์ž๊ฐ€ ์ฐพ๊ธฐ

์‹ญ์ž๊ฐ€ ์ฐพ๊ธฐ ์‹œ๊ฐ„ ์ œํ•œ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ์ œ์ถœ์ •๋‹ต๋งžํžŒ ์‚ฌ๋žŒ์ •๋‹ต ๋น„์œจ 2 ์ดˆ 512 MB 1432 562 415 38.858% ๋ฌธ์ œ ์‹ญ์ž๊ฐ€๋Š” ๊ฐ€์šด๋ฐ์— '*'๊ฐ€ ์žˆ๊ณ , ์ƒํ•˜์ขŒ์šฐ ๋ฐฉํ–ฅ์œผ๋กœ ๋ชจ๋‘ ๊ฐ™์€ ๊ธธ์ด์˜ '*'๊ฐ€ ์žˆ๋Š” ๋ชจ์–‘์ด๋‹ค. ์‹ญ์ž๊ฐ€

coolcode.tistory.com

https://codechacha.com/ko/python-convert-string-to-char-list/

 

Python - ๋ฌธ์ž์—ด์„ ํ•œ ๊ธ€์ž์”ฉ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ์— ๋„ฃ๊ธฐ

String์„ ํ•œ ๊ธ€์ž์”ฉ(char) ๋‚˜๋ˆ„๊ณ , ๊ทธ ๋ฌธ์ž๋“ค์„ list๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. list()์˜ ์ธ์ž๋กœ ๋ฌธ์ž์—ด์„ ์ „๋‹ฌํ•˜๋ฉด, ๋ฌธ์ž ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด list์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. for๋ฅผ ์ด์šฉ

codechacha.com

 

'๐Ÿ“๋ฌธ์ œ ํ’€์ด > ๐ŸงฉBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ๋ฐฑ์ค€ 2089 -2์ง„์ˆ˜  (0) 2023.03.02
[Python] ๋ฐฑ์ค€ 1107 ๋ฆฌ๋ชจ์ปจ | EOFError | ๋ธŒ๋ฃจํŠธํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜  (0) 2023.03.02
[Python] ๋ฐฑ์ค€ 6588 ๊ณจ๋“œ๋ฐ”ํ์˜ ์ถ”์ธก | ์‹œ๊ฐ„ ์ดˆ๊ณผ | ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด | ์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ ๋ํŒ์™•  (0) 2023.02.22
[Python] ๋ฐฑ์ค€ 1373 2์ง„์ˆ˜ 8์ง„์ˆ˜| ์‹œ๊ฐ„ ์ดˆ๊ณผ | ๋‚ด์žฅ ํ•จ์ˆ˜ oct  (0) 2023.02.11
[Python] ๋ฐฑ์ค€ 2563 ์ƒ‰์ข…์ด  (2) 2023.02.01
    '๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Python] ๋ฐฑ์ค€ 2089 -2์ง„์ˆ˜
    • [Python] ๋ฐฑ์ค€ 1107 ๋ฆฌ๋ชจ์ปจ | EOFError | ๋ธŒ๋ฃจํŠธํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • [Python] ๋ฐฑ์ค€ 6588 ๊ณจ๋“œ๋ฐ”ํ์˜ ์ถ”์ธก | ์‹œ๊ฐ„ ์ดˆ๊ณผ | ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด | ์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ ๋ํŒ์™•
    • [Python] ๋ฐฑ์ค€ 1373 2์ง„์ˆ˜ 8์ง„์ˆ˜| ์‹œ๊ฐ„ ์ดˆ๊ณผ | ๋‚ด์žฅ ํ•จ์ˆ˜ oct
    Hiya_
    Hiya_
    ํ•˜์–€ ์ฒœ๊ณผ ๋ฐ”๋žŒ๋งŒ ์žˆ๋‹ค๋ฉด ์–ด๋””๋“  ๊ฐˆ ์ˆ˜ ์žˆ์–ด

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