We will find a way, we always have.

-interstellar

Problem Solving/๋ฐฑ์ค€

[๋ฐฑ์ค€] 16724๋ฒˆ ํ”ผ๋ฆฌ ๋ถ€๋Š” ์‚ฌ๋‚˜์ด

Redddy 2023. 3. 10. 16:46

๐Ÿ”ˆ ๋ฌธ์ œ

ํ”ผ๋ฆฌ ๋ถ€๋Š” ์‚ฌ๋‚˜์ด ์„ฑ์šฐ๋Š” ์˜ค๋Š˜๋„ ํ”ผ๋ฆฌ๋ฅผ ๋ถ„๋‹ค.

์„ฑ์šฐ๊ฐ€ ํ”ผ๋ฆฌ๋ฅผ ๋ถˆ ๋•Œ๋ฉด ์˜๊ณผ์ผ ํšŒ์›๋“ค์€ ์ž๊ธฐ๋„ ๋ชจ๋ฅด๊ฒŒ ์„ฑ์šฐ๊ฐ€ ์ •ํ•ด๋†“์€ ๋ฐฉํ–ฅ๋Œ€๋กœ ์›€์ง์ด๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค. ์„ฑ์šฐ๊ฐ€ ์ •ํ•ด๋†“์€ ๋ฐฉํ–ฅ์€ ์ด 4๊ฐ€์ง€๋กœ U, D, L, R์ด๊ณ  ๊ฐ๊ฐ ์œ„, ์•„๋ž˜, ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•˜๊ฒŒ ํ•œ๋‹ค.

์ด๋ฅผ ์ง€์ผœ๋ณด๋˜ ์žฌํ›ˆ์ด๋Š” ๋” ์ด์ƒ ์›€์ง์ด๊ธฐ ํž˜๋“ค์–ดํ•˜๋Š” ์˜๊ณผ์ผ ํšŒ์›๋“ค์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด ํŠน์ • ์ง€์ ์— ‘SAFE ZONE’ ์ด๋ผ๋Š” ์ตœ์ฒจ๋‹จ ๋ฐฉ์Œ ์‹œ์„ค์„ ๋งŒ๋“ค์–ด ํšŒ์›๋“ค์ด ์„ฑ์šฐ์˜ ํ”ผ๋ฆฌ ์†Œ๋ฆฌ๋ฅผ ๋“ฃ์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์˜ˆ์‚ฐ์ด ๋„‰๋„‰ํ•˜์ง€ ์•Š์€ ์žฌํ›ˆ์ด๋Š” ์„ฑ์šฐ๊ฐ€ ์„ค์ •ํ•ด ๋†“์€ ๋ฐฉํ–ฅ์„ ๋ถ„์„ํ•ด์„œ ์ตœ์†Œ ๊ฐœ์ˆ˜์˜ ‘SAFE ZONE’์„ ๋งŒ๋“ค๋ ค ํ•œ๋‹ค. 

์„ฑ์šฐ๊ฐ€ ์„ค์ •ํ•œ ๋ฐฉํ–ฅ ์ง€๋„๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ์žฌํ›ˆ์ด๋ฅผ ๋„์™€์„œ ์˜๊ณผ์ผ ํšŒ์›๋“ค์ด ์ง€๋„ ์–ด๋Š ๊ตฌ์—ญ์— ์žˆ๋”๋ผ๋„ ์„ฑ์šฐ๊ฐ€ ํ”ผ๋ฆฌ๋ฅผ ๋ถˆ ๋•Œ ‘SAFE ZONE’์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ‘SAFE ZONE’์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

๐Ÿ“์ž…๋ ฅ

์ฒซ ๋ฒˆ์งธ ์ค„์— ์ง€๋„์˜ ํ–‰์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” N(1 ≤ N ≤ 1,000)๊ณผ ์ง€๋„์˜ ์—ด์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” M(1 ≤ M ≤ 1,000)์ด ์ฃผ์–ด์ง„๋‹ค.
๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์ง€๋„์˜ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธธ์ด๊ฐ€ M์ธ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค.
์ง€๋„ ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€๋Š” ๋ฐฉํ–ฅ์˜ ์ž…๋ ฅ์€ ์ฃผ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค.

 

๐Ÿ“‘์ถœ๋ ฅ

์ฒซ ๋ฒˆ์งธ ์ค„์— ‘SAFE ZONE’์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

๐Ÿ“š ๋ฌธ์ œ ํ’€์ด

 

๋ณด๋“œ์— ์ ํ˜€์ง„ U, D, L, R๋กœ ํƒ์ƒ‰ํ•˜๋˜ ์ด๋•Œ ์‹ธ์ดํด์˜ ๊ฐฏ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค.

U,D,L,R์„ ํ‚ค๊ฐ’์œผ๋กœ ๋‘” ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ๋ฐ”๋กœ ์ด๋™ ๋ฐฉํ–ฅ์œผ๋กœ ๋ณ€๊ฒฝํ•˜์˜€๊ณ , ์ด์ „์— ๋ฐฉ๋ฌธํ•œ ์ ์ด ์—†๋Š” ๊ณณ์„ ์ฐพ์•„ DFS๋ฅผ ํ•˜์˜€๋‹ค. ๊ทธ ์ด์ „์— ๋ฐฉ๋ฌธํ•œ ์ ์ด ์—†๋Š” ๊ณณ์ด ํ•˜๋‚˜์˜ ์‚ฌ์ดํด๋กœ ํ•ฉ์ณ์งˆ ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด๋ผ๋ฉด ์นด์šดํŠธ๋ฅผ ํ•˜์ง€ ์•Š์•˜๊ณ , ์ƒˆ๋กœ์šด ์‚ฌ์ดํด์ด๋ฉด ์นด์šดํŠธ๋ฅผ ํ•ด์ฃผ์—ˆ๋‹ค.

 

๋ฌด์Šจ ๋ง์ด๋ƒํ•˜๋ฉด,,

3 3
RDD
ULD
ULL

์œ„์™€ ๊ฐ™์€ ์˜ˆ์ œ๊ฐ€ ์žˆ๋‹ค.

์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๊ณณ์„ ์ฐพ๊ธฐ ๋•Œ๋ฌธ์—, ์ œ์ผ ์ฒ˜์Œ์— ํƒ์ƒ‰ํ•˜๊ฒŒ ๋˜๋Š” ๊ณณ์€ 0,0 ์ฆ‰ R์ด๋‹ค.

์—ฌ๊ธฐ์„œ ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•˜๋ฉด 

 

์˜ˆ์ œ 1

์ด๋Ÿฐ ์‹์œผ๋กœ ํ•œ๋ฒˆ ํƒ์ƒ‰์„ ํ•˜๊ฒŒ ๋œ๋‹ค. (์—ญ ใ„ท ๋ชจ์–‘)

๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ์œผ๋กœ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๊ณณ์€ 0,2 ์ฆ‰ D ์ด๋‹ค.

์—ฌ๊ธฐ์„œ ๋‹ค์‹œ ํƒ์ƒ‰์„ ํ•˜๋ฉด

 

์˜ˆ์ œ 1

์ด๋ ‡๊ฒŒ ํƒ์ƒ‰์„ ํ•œ๋‹ค. 

์‚ฌ์‹ค ๋‘๊ฐœ ๋ชจ๋‘ ํ•œ ์‚ฌ์ดํด์ด๋‹ค. ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๊ณณ๋งŒ ๋ฐฉ๋ฌธํ•˜๊ธฐ ๋•Œ๋ฌธ์— 0,1 ์ง์ „์— ํƒ์ƒ‰์„ ๋ฉˆ์ท„๋‹ค. ์ด ๋‘๊ฐœ๋ฅผ ํ•˜๋‚˜์˜ ์นด์šดํŠธ๋กœ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ–ˆ๋‹ค. ํƒ์ƒ‰์„ ๋ฉˆ์ท„์„ ๋•Œ ๋งˆ์ง€๋ง‰ ๋ฐฉ๋ฌธ์œ„์น˜๊ฐ€ ์ด์ „ ํƒ์ƒ‰์—์„œ ๋ฐฉ๋ฌธํ•œ ๋ถ€๋ถ„์ด๋ฉด ํ•œ ์‚ฌ์ดํด๋กœ ์ด์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์นด์šดํŠธ ํ•˜์ง€ ์•Š์•˜๊ณ , ํ˜„์žฌ ํƒ์ƒ‰์—์„œ ๋ฐฉ๋ฌธํ•œ ๊ณณ์ด๋ผ๋ฉด ์ƒˆ๋กœ์šด ์‚ฌ์ดํด์ด๊ธฐ ๋•Œ๋ฌธ์— ์นด์šดํŠธ ํ•ด์ฃผ์—ˆ๋‹ค.

 

 

๐Ÿ’ป ์ฝ”๋“œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import sys
input = sys.stdin.readline
 
= {"U":[-1,0], "D":[1,0], "R":[0,1], "L":[0,-1]}
 
def search(y, x, idx):
    while not visited[y][x]:
        visited[y][x] = idx
        y,x = y+d[board[y][x]][0], x+d[board[y][x]][1]
    
    if visited[y][x] == idx:
        return 1
    return 0
 
n,m = map(int,input().split())
board = [list(map(str,input().rstrip())) for _ in range(n)]
visited = [[0]*for _ in range(n)]
ans = 0
idx = 1
for i in range(n):
    for j in range(m):
        if not visited[i][j]:
            ans += search(i,j,idx)
            idx += 1
print(ans)
cs

 

๐Ÿญ ์‹œํ–‰์ฐฉ์˜ค

์ฒ˜์Œ์— ํ‹€๋ ธ๋˜ ์ด์œ ๋Š” ์•ž์„œ ์„ค๋ช…ํ•œ ๊ฐ™์€ ์‚ฌ์ดํด์„ ์—ฌ๋Ÿฌ๋ฒˆ ์นด์šดํŠธํ•ด์คฌ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค.

 

๐Ÿ”— ๋ฌธ์ œ๋งํฌ ํ”ผ๋ฆฌ ๋ถ€๋Š” ์‚ฌ๋‚˜์ด

 

16724๋ฒˆ: ํ”ผ๋ฆฌ ๋ถ€๋Š” ์‚ฌ๋‚˜์ด

์ฒซ ๋ฒˆ์งธ ์ค„์— ์ง€๋„์˜ ํ–‰์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” N(1 ≤ N ≤ 1,000)๊ณผ ์ง€๋„์˜ ์—ด์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” M(1 ≤ M ≤ 1,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์ง€๋„์˜ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธธ์ด๊ฐ€ M์ธ ๋ฌธ์ž์—ด์ด ์ฃผ

www.acmicpc.net