728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ๐Ÿค”

NxN ํฌ๊ธฐ์˜ ๋ฏธ๋กœ์—์„œ ์ถœ๋ฐœ์ง€์—์„œ ๋ชฉ์ ์ง€์— ๋„์ฐฉํ•˜๋Š” ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋„์ฐฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉด 1, ์•„๋‹ˆ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค.

์ฃผ์–ด์ง„ ๋ฏธ๋กœ ๋ฐ–์œผ๋กœ๋Š” ๋‚˜๊ฐˆ ์ˆ˜ ์—†๋‹ค.

๋‹ค์Œ์€ 5x5 ๋ฏธ๋กœ์˜ ์˜ˆ์ด๋‹ค.
 

13101

10101

10101

10101

10021

 

๋งˆ์ง€๋ง‰ ์ค„์˜ 2์—์„œ ์ถœ๋ฐœํ•ด์„œ 0์ธ ํ†ต๋กœ๋ฅผ ๋”ฐ๋ผ ์ด๋™ํ•˜๋ฉด ๋งจ ์œ—์ค„์˜ 3์— ๋„์ฐฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค.

 
 

[์ž…๋ ฅ]
 

์ฒซ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.  1<=T<=50
 

๋‹ค์Œ ์ค„๋ถ€ํ„ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๋ณ„๋กœ ๋ฏธ๋กœ์˜ ํฌ๊ธฐ N๊ณผ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๋ฏธ๋กœ์˜ ํ†ต๋กœ์™€ ๋ฒฝ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. 0์€ ํ†ต๋กœ, 1์€ ๋ฒฝ, 2๋Š” ์ถœ๋ฐœ, 3์€ ๋„์ฐฉ์ด๋‹ค. 5<=N<=100

 

[์ถœ๋ ฅ]
 

๊ฐ ์ค„๋งˆ๋‹ค "#T" (T๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๋ฒˆํ˜ธ)๋ฅผ ์ถœ๋ ฅํ•œ ๋’ค, ๊ณ„์‚ฐ๊ฒฐ๊ณผ๋ฅผ ์ •์ˆ˜๋กœ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ‘error’๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

๋‚ด ํ’€๐Ÿฆท

# 4875. ๋ฏธ๋กœ
# ์ถœ๋ฐœ์ง€์—์„œ ๋ชฉ์ ์ง€์— ๋„์ฐฉํ•˜๋Š” ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ
# ๋งˆ์ง€๋ง‰ ์ค„์˜ 2์—์„œ ์ถœ๋ฐœ, 0์ธ ํ†ต๋กœ๋ฅผ ๋”ฐ๋ผ ์ด๋™ํ•˜๋ฉด ๋งจ ์œ—์ค„์˜ 3์— ๋„์ฐฉํ•˜๋Š”์ง€
# ์‚ฌ๋ฐฉ ํƒ์ƒ‰
dx = [0, 1, 0, -1] # ๋ฒ”์œ„ ์ œ๋Œ€๋กœ ํ™•์ธ
dy = [-1, 0, 1, 0]
def miro(i, j):
    global result # ๊ฒฐ๊ณผ๊ฐ’ ์ „์—ญ๋ณ€์ˆ˜๋กœ ์„ค์ •ํ•ด์ฃผ๊ธฐ
    visited[i][j] = True
    for k in range(4):
        di = i + dx[k]
        dj = j + dy[k] # ํ•˜๋‚˜ํ•˜๋‚˜ ์‹ ๊ฒฝ์จ์„œ ์ ๊ธฐ
        if 0 <= di < N and 0 <= dj < N and not visited[di][dj]:
            # ํƒ์ƒ‰์•ˆํ–ˆ๊ณ  0์ด๋ฉด ์žฌ๊ท€
            if arr[di][dj] == 0:
                miro(di, dj)
            # 3 ๋„์ฐฉํ•˜๋ฉด ์„ฑ๊ณต
            elif arr[di][dj] == 3:
                result = 1 # ๊ฒฐ๊ณผ๊ฐ’ ์„ฑ๊ณต์œผ๋กœ ๋ฐ”๊พธ๊ธฐ
                break

T = int(input())
for tc in range(1, T + 1):
    N = int(input()) # ๋ฏธ๋กœ์˜ ํฌ๊ธฐ
    arr = [list(map(int, input().strip())) for _ in range(N)]
    # ๋ฐฉ๋ฌธ ๊ฒ€์‚ฌ
    visited = [[False for _ in range(N)] for _ in range(N)]
    result = 0 # ๊ฒฐ๊ณผ๊ฐ’

    for i in range(N-1, -1, -1):
        for j in range(N-1, -1, -1):
            if arr[i][j] == 2:
                miro(i, j) # ํ•จ์ˆ˜์— ์‹œ์ž‘์  ๋„ฃ์–ด์ฃผ๊ธฐ

    print(f'#{tc} {result}')

๋ฒฝ์ด ์—†๋Š”๊ณณ์„ ํ”ผํ•ด์„œ ๊ฐ€์•ผํ•œ๋‹ค๊ณ ๋ผ๊ณ ๋ผ๊ณ ๋ผํŒŒ๋• ํ˜ผ์ž ์ด๋Ÿฌ๊ณ  ์žˆ๋‹ค๊ฐ€..

๋ญ”๊ฐ€ ์˜ค๋Š˜ ์‹œํ—˜์—์„œ ์‚ฌ์šฉํ•œ(?) ๋ธํƒ€ + dfs์—์„œ ๋ฐฐ์šด ๊ฐœ๋…๋“ค + ์žฌ๊ท€ ๋‹ค ์“ฐ๋ฉด ํ•ด๊ฒฐํ•  ๋“ฏ(?)์œผ๋กœ ์ƒ๊ฐํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค์•„ ๐Ÿค”

 


์ค‘๊ฐ„์— ์‹ค์ˆ˜ํ•œ ๋ถ€๋ถ„๋“ค ๐Ÿ˜ต‍๐Ÿ’ซ

- ๋ธํƒ€ ๋ฒ”์œ„ (์ทจ์ค‘ ์ฝ”๋”ฉํ•ด์„œ ๊ทธ๋Ÿฐ๊ฐ€ ์ž˜๋ชป ์ ์Œ;;;;

- dj = i + dk[k] (์—ญ์‹œ ์ž˜๋ชป ์ ์Œ....)

- ์ž…๋ ฅ ๋ฐ›์„ ๋•Œ strip() ์จ์ฃผ์ง€ ์•Š์•„์„œ ๋Ÿฐํƒ€์ž„์—๋Ÿฌ ๋ฐœ์ƒ.... => ์‚ฌ์‹ค ์•„์ง๋„ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Œ ์™œ์ธ์ง€...

strip()์€ ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•˜๋ฉด ๋˜๋Š”๊ฑฐ์ž๋‚˜์š”??

split()์„ ์•ˆ ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค ์•„๋‹Œ๊ฐ€์š”??

์•„์‹œ๋Š” ๋ฉ‹์ง„๋ถ„์˜ ๋Œ“๊ธ€ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค...

 

์ฐธ๊ณ ํ•จ๋ฉด ์ข‹์„ ๊ฐœ๋…๋“ค โœ๏ธ

1) ๋ธํƒ€๋ฅผ ์ด์šฉํ•œ 2์ฐจ ๋ฐฐ์—ด ํƒ์ƒ‰

: 2์ฐจ ๋ฐฐ์—ด์˜ ํ•œ ์ขŒํ‘œ์—์„œ 4๋ฐฉํ–ฅ์˜ ์ธ์ ‘ ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•(8๋ฐฉ๋„ ๊ฐ€๋Šฅ)

arr[0...N-1][0...N-1] # N * N ๋ฐฐ์—ด
di = [0, 1, 0, -1] # ํ•˜, ์šฐ, ์ƒ, ์ขŒ
dj = [1, 0, -1, 0]
for i in range(N):
	for j in range(N): # ์—ฌ๊ธฐ๊นŒ์ง€๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ์•„๋Š” ์ด์ฐจ์› ๋ฐฐ์—ด
    	for k in range(4): # ๋ธ์ฐจ๋ฅผ ์ด์šฉ
        	ni = i + di[k]
            nj = j + dj[k]
            if 0 <= ni < N and 0 <= nj < N: # ๋ฒ”์œ„์— ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ์ธ๋ฑ์Šค๋ฉด...
            	f(arr[ni][nj]) # ์ด ์ ์„ ๊ธฐ์ค€์œผ๋กœ ๋”ํ•ด์ฃผ๋“  ๊ฐœ์ˆ˜๋ฅผ ์„ธ์ฃผ๋˜ ๋” ๋‚˜์•„๊ฐ€๋˜ ๋ฌด๊ถ๋ฌด์ง„ํ•œ ๋ฌธ์ œ๋“ค์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค

 

2) ์žฌ๊ท€๋ฅผ ํ™œ์šฉํ•œ dfs

์žฌ๊ท€๋ฅผ ํ™œ์šฉํ•จ์œผ๋กœ์จ ์‰ฝ๊ฒŒ dfs๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค(๋‚ด์šฉ์€ ์•ˆ์‰ฌ์›€... ์ดํ•ดํ•˜๊ธฐ ํž˜๋“ค์—ˆ์Œ..)

def dfs(v):
    global visited
    # print(v, "-", end='')
    visited[v] = True # ์ด๊ฑฐ์— ํ•ด๋‹นํ•˜๋ฉด ์ง„ํ–‰
    # v ๋…ธ๋“œ์—์„œ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ํ™•์ธ (์ธ์ ‘ํ•œ ๋…ธ๋“œ)
    for u in graphs[v]:
        if visited[u] == True:  # ๋ฐฉ๋ฌธ์„ ํ–ˆ๋‹ค๋ฉด
            continue
        # ๋ฐฉ๋ฌธ์„ ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋ฐฉ๋ฌธ์„ ์ง„ํ–‰
        else: # u๊ฐ€ visited์•ˆ์— ๋“ค์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด u๋ฅผ ๋‹ค์‹œ dfs ํ•ด์ฃผ๋ฉด ๋œ๋‹ค
            dfs(u)  # ๋ชจ๋“  ์š”์†Œ๊ฐ€ ๋‹ค ๋Œ์•„๊ฐ€์„œ ๋ชจ๋“  ์š”์†Œ๊ฐ€ ํŠธ๋ฃจ๋กœ ๋ฐ”๋€Œ๋ฉด ๋๋‚œ๋‹ค.

 

 

728x90
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•
# ์žฌ๊ท€ํ•จ์ˆ˜๋กœ ๋ถ€๋ถ„์ง‘ํ•ฉ ๋งŒ๋“ค๊ธฐ
# bits: ํ•ด๋‹น ์ธ๋ฑ์Šค์˜ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ• ์ง€์˜ ์œ ๋ฌด (1์€ ์‚ฌ์šฉํ•˜๊ณ  0์€ ์•„๋‹˜)
# depth : ๋‚ด๊ฐ€ ์–ผ๋งˆ๋‚˜ ํ•จ์ˆ˜๋ฅผ ์žฌ๊ท€ํ˜ธ์ถœํ–ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์นด์šดํŠธ ๊ฐ’...
def recur(bits, depth):
    # ๊ธฐ์ € ์กฐ๊ฑด
    if depth == N:
        for i in range(N):
            if bits[i] == 1:
                print(arr[i], end=' ')
        print()
        return

    for i in range(2): # 0, 1
        bits[depth] = i
        # ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœ
        recur(bits, depth + 1)


N = 4
arr = [1, 2, 3, 4]
recur([0] * N, 0)

# result
4 
3 
3 4 
2 
2 4 
2 3 
2 3 4 
1 
1 4 
1 3 
1 3 4 
1 2 
1 2 4 
1 2 3 
1 2 3 4

๋’ค์—์„œ ํ•˜๋‚˜ํ•˜๋‚˜ ๋Œ์•„์˜จ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์ฃผ๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šธ๊ฒƒ ๊ฐ™๋‹ค~~~

 

์žฌ๊ท€ํ•จ์ˆ˜ ๋„ˆ๋ฌด ์–ด๋ ค์›Œ์š”์˜ค....์ œ์ œ์ œ.....๊ธฐ.........๋ž„,,,,

 

์—ฌ๊ธฐ์„œ ์ œ์ผ ์ค‘์š”ํ•œ ํฌ์ธํŠธ๋Š” [0, 0, 0, 0] ๋ฐฐ์—ด์„ ๋๊นŒ์ง€ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ์—ญ์œผ๋กœ ๋งŒ๋“ค์–ด์ ธ ๋‚˜๊ฐ€๋Š” ๋Š๋‚Œ์ด๋ผ๋Š”๊ฑฐ?

return์„ ๋ฐ›์•˜์„ ๋•Œ, ์ œ์ผ ์ฒ˜์Œ์ด ์•„๋‹Œ ์ž์‹ ์„ ํ˜ธ์ถœํ–ˆ๋˜ ๊ณณ์œผ๋กœ ๋Œ์•„๊ฐ€ 0์ด ์•„๋‹ˆ๋ผ 1์ธ ๊ฒฝ์šฐ๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค๋Š”๊ฑฐ??

๊ทธ๋ž˜์„œ ๋‹ต์„ ์ถœ๋ ฅํ–ˆ์„๋•Œ, ๋ฆฌ์ŠคํŠธ์— ๊ฐ€์žฅ ๋จผ์ € ์ €์žฅ๋œ 1์ด ์•„๋‹ˆ๋ผ 4๊ฐ€ ๋‚˜์˜ค๋Š” ๋ถ€๋ถ„์ด ์ •๋ง ์ค‘์š” ํฌ์ธํŠธ์ธ๊ฑฐ ๊ฐ™๋‹ค...

 

์žฌ๊ท€์˜ ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ : ํŒฉํ† ๋ฆฌ์–ผ

 

728x90
๋ฐ˜์‘ํ˜•

728x90
๋ฐ˜์‘ํ˜•

์˜ค๋Š˜์€ ์‹ธํ”ผ์—์„œ ์Šคํƒ์— ๊ด€ํ•ด ๋ฐฐ์› ๋‹ค

๋ณต์Šต์œผ๋กœ๋Š” ๋ฐฑ์ค€์— ์žˆ๋Š” ์Šคํƒ ๋ฌธ์ œ ํ’€๊ธฐ..

๋‹ค ํ’€๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ์–ด์ œ ํ’€๋‹ค ๋งŒ ๋ธŒ๋ฃจํˆฌํ† ์Šค์— ์ฒด์Šค๊ฐ€ ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ ค์„œ 2๋ฌธ์ œ ๋‚จ์•˜๋‹ค...

๋‚ด์ผ ํ•ด์•ผ์ง€;;;;; ๋‹ค์Œ์— ์ฒด์Šค๋„ ์‹œ๊ฐ„๋‚˜๋ฉด ์ ์–ด๋ณด๋Š”๊ฑธ๋กœ

 

์„œ๋ก ์ด ๋„ˆ๋ฌด ๊ธธ์—ˆ๊ณ  ์˜ค๋Š˜ ์†Œ๊ฐœํ•ด ๋“œ๋ฆด ๋ฌธ์ œ๋Š” ๋ฐฑ์ค€ 9012. ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค!!!

์˜ค๋Š˜ swea์—์„œ๋„ ๋น„์Šทํ•œ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋Š”๋ฐ ์กฐ๊ธˆ ์‰ฌ์šด ๋ฒ„์ „์ž…๋‹ˆ๋‹ค ^^

๊ทธ๋Ÿผ ๊ณ  ๐ŸŒŸ๐ŸŒŸ

๋ฌธ์ œ

๊ด„ํ˜ธ ๋ฌธ์ž์—ด(Parenthesis String, PS)์€ ๋‘ ๊ฐœ์˜ ๊ด„ํ˜ธ ๊ธฐํ˜ธ์ธ ‘(’ ์™€ ‘)’ ๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ๋ฌธ์ž์—ด์ด๋‹ค. ๊ทธ ์ค‘์—์„œ ๊ด„ํ˜ธ์˜ ๋ชจ์–‘์ด ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด์„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด(Valid PS, VPS)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ํ•œ ์Œ์˜ ๊ด„ํ˜ธ ๊ธฐํ˜ธ๋กœ ๋œ “( )” ๋ฌธ์ž์—ด์€ ๊ธฐ๋ณธ VPS ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๋งŒ์ผ x ๊ฐ€ VPS ๋ผ๋ฉด ์ด๊ฒƒ์„ ํ•˜๋‚˜์˜ ๊ด„ํ˜ธ์— ๋„ฃ์€ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด “(x)”๋„ VPS ๊ฐ€ ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‘ VPS x ์™€ y๋ฅผ ์ ‘ํ•ฉ(concatenation)์‹œํ‚จ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด xy๋„ VPS ๊ฐ€ ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด “(())()”์™€ “((()))” ๋Š” VPS ์ด์ง€๋งŒ “(()(”, “(())()))” , ๊ทธ๋ฆฌ๊ณ  “(()” ๋Š” ๋ชจ๋‘ VPS ๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž์—ด์ด๋‹ค. 

์—ฌ๋Ÿฌ๋ถ„์€ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด VPS ์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ํŒ๋‹จํ•ด์„œ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ YES ์™€ NO ๋กœ ๋‚˜ํƒ€๋‚ด์–ด์•ผ ํ•œ๋‹ค. 

์ž…๋ ฅ

์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋Š” ํ‘œ์ค€ ์ž…๋ ฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ž…๋ ฅ์€ T๊ฐœ์˜ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋กœ ์ฃผ์–ด์ง„๋‹ค. ์ž…๋ ฅ์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์˜ ์ฒซ์งธ ์ค„์—๋Š” ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด ํ•œ ์ค„์— ์ฃผ์–ด์ง„๋‹ค. ํ•˜๋‚˜์˜ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 2 ์ด์ƒ 50 ์ดํ•˜์ด๋‹ค. 

์ถœ๋ ฅ

์ถœ๋ ฅ์€ ํ‘œ์ค€ ์ถœ๋ ฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋งŒ์ผ ์ž…๋ ฅ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด(VPS)์ด๋ฉด “YES”, ์•„๋‹ˆ๋ฉด “NO”๋ฅผ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฐจ๋ก€๋Œ€๋กœ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. 

์˜ˆ์ œ ์ž…๋ ฅ 1 ๋ณต์‚ฌ

6
(())())
(((()())()
(()())((()))
((()()(()))(((())))()
()()()()(()()())()
(()((())()(

์˜ˆ์ œ ์ถœ๋ ฅ 1 ๋ณต์‚ฌ

NO
NO
YES
NO
YES
NO

 ์ด ๊ด„ํ˜ธ ๋ฌธ์ œ๊ฐ€ ์•ฝ๊ฐ„ ์Šคํƒ์˜ ๊ธฐ๋ณธ๋ฌธ์ œ ๋Š๋‚Œ?? ๋จผ๊ฐ€ ์‹œํ—˜์— ์กฐ๊ธˆ ์‘์šฉํ•ด์„œ ๋‚˜์˜ฌ๊ฑฐ ๊ฐ™์€ ๋Š๋‚Œ์ด ๋“œ๋Š”๋ฐ์š”...

๋จผ์ € ์ œ๊ฐ€ ์ง  ์ฝ”๋“œ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค!!!

# 9012. ๊ด„ํ˜ธ - ์˜ค๋Š˜ ๋‚˜๋ฅผ ์ง€๊ฒน๊ฒŒ ํ•œ ^^ : ์˜ค๋Š˜ ํ•™๊ต์—์„œ ์ด๊ฑฐ ๋น„์Šทํ•œ ๋ฌธ์ œ ํ•œ 2์‹œ๊ฐ„ ๋จธ๋ฆฌ ์‹ธ๋งธ๊ฑฐ๋ฉ์š”...
stack = [] 						# ๊ด„ํ˜ธ๋ฅผ ๋‹ด์„ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด ์คฌ์Šต๋‹ˆ๋‹ค
def gal(text): 					# ํ•จ์ˆ˜๋กœ ๋งŒ๋“œ๋Š”๊ฒŒ ์กฐ๊ธˆ ํŽธํ•ด์ ธ์„œ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค
    for ch in text: 			# ํ…์ŠคํŠธ ๋‚ด๋ถ€๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ
        if ch == '(': 			# ๋ฌธ์ž'('๊ฐ€ ์žˆ์œผ๋ฉด
            stack.append(ch)	# ๋ฌธ์ž๋ฅผ ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค
        elif ch == ')':			# ๋ฌธ์ž')'๊ฐ€ ์žˆ์œผ๋ฉด
            if len(stack) == 0: # ๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๋ฅผ ํ™•์ธํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ 0์ด๋ผ๋ฉด ์—ด๋ฆฐ๊ธฐํ˜ธ๊ฐ€ ์—†์–ด์„œ ํ‹€๋ฆฐ text์ž…๋‹ˆ๋‹น
                return 'NO'		# ๊ณ ๋กœ NO๋ฅผ ๋ฐ˜ํ™˜ํ•ด ์คฌ์–ด์š”
            else:				# ๊ธธ์ด๊ฐ€ 0์ด ์•„๋‹ˆ๋ผ๋ฉด...
                if stack[-1] == '(': 	# ์Šคํƒ์˜ ๋งˆ์ง€๋ง‰์— (๊ฐ€ ์žˆ์œผ๋ฉด 
                    stack.pop()			# ๋งˆ์ง€๋ง‰ (๋ฅผ ์‚ญ์ œํ•˜๊ณ 
                    continue			# ๊ณ„์†ํ•ด์„œ ๋‹ค์Œ ๋ฌธ์ž๋ฅผ ํ™•์ธํ•ด ์คฌ์Šต๋‹ˆ๋‹ค
                else:
                    return 'NO'			# ํ•˜์ง€๋งŒ ์—ด๋ฆฐ๊ธฐํ˜ธ '('๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ๊ฒŒ ๋“ค์–ด์žˆ์œผ๋ฉด ํ‹€๋ฆฐ ๋ฌธ์žฅ์ด๊ฒ ์ฃ 

    if len(stack) == 0: # ๊ฒฐ๋ก ์ ์œผ๋กœ ')'๊ฐ€ ๋‚˜์˜ฌ๋–„ '('์„ ์ง€์› ์œผ๋ฏ€๋กœ ์Œ์ด ๋งž๋Š”๋‹ค๋ฉด 
    					#์Šคํƒ์— ๋‚จ์•„์žˆ๋Š”๊ฒŒ ์—†์–ด์•ผ ํ•˜๋‹ˆ๊นŒ
        return 'YES'	# YES๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
    else:
        return 'NO' 	# ์•„๋‹ˆ๋ฉด 'NO'

import sys						# ์Šคํƒ ๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ์ฒ˜์Œ์œผ๋กœ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋– ์„œ ์•Œ์•„์™”์Šต๋‹ˆ๋‹ค.. 
T = int(sys.stdin.readline())
for _ in range(T):
    bracket = sys.stdin.readline()
    stack = []  ########์‚ฌ์‹ค ์ € ์œ„์— ํ•จ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ ์ด๋ถ€๋ถ„์ด ํ‹€๋ ธ๋Š”๋ฐ์š”....
    #์Šคํƒ์„ ํ• ๋•Œ๋งˆ๋‹ค ์ดˆ๊ธฐํ™”ํ•ด์ค˜์•ผํ•ด์š”.... ํ‹€๋ฆฐ ๊ฐ’์ด ๋“ค์–ด์žˆ๋‹ค๋ฉด ๋‹ค์Œ ์‚ฌ๋ก€๋„ ํ‹€๋ฆฌ๊ฑฐ๋“ฑ์š”..... ๊ธฐ์ดˆ์ ์ธ ๋ถ€๋ถ„์ด๋‹ˆ๊นŒ ๊ผญ ๊ธฐ์–ตํ•˜๊ธฐ!!!!

    result = gal(bracket)
    print(result)

 ์ œ๊ฐ€ ๋„ˆ๋ฌด ์„ค๋ช…์„ ์žฅํ™ฉํ•˜๊ฒŒ ์ ์—ˆ๋Š”๋ฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ์š”์•ฝํ•˜์ž๋ฉด...

์„ฑ๋ฆฝ โ›”

1. () ์Œ์ด ๋งž์•„์•ผํ•จ : '(', ')'์˜ ๊ฐ๊ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™์•„์•ผ ํ•จ (=๋ฆฌ์ŠคํŠธ์— ๊ธฐํ˜ธ๊ฐ€ ๋‚จ์•„์žˆ์œผ๋ฉด ์•ˆ๋จ)

2. ๋‹ซํžŒ ๊ธฐํ˜ธ')'๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๋ฉด ์•ˆ๋œ๋‹ค

 

 

์œ„์— ํ•จ์ˆ˜ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ๋„ ์˜ค๋ž˜ ๊ฑธ๋ ธ์ง€๋งŒ...

ํžˆ๋“  ์ผ€์ด์Šค ์‹คํŒจํ•˜๊ฒŒ ํ•œ ๋ถ€๋ถ„์€ ๋ฆฌ์ŠคํŠธ ์ดˆ๊ธฐํ™”์˜€์Šต๋‹ˆ๋‹ค...

์ž˜๋ชป๋œ ์ผ€์ด์Šค๋ฅผ ํ•œํ›„์— ๋‚จ์•„์žˆ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์ดˆ๊ธฐํ™” ํ•ด์•ผํ•˜๋Š”๋ฐ ๋”ฐ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ถ€๋ถ„์„ ์•ˆ ๋„ฃ์–ด์คฌ๋”๋ผ๊ตฌ์š”..

์ •๋ง ๊ธฐ๋ณธ์ ์ด์ง€๋งŒ ์•ˆ ๋„ฃ์–ด์œผ๋ฉด ํ‹€๋ฆฌ๋Š” ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด๋‹ˆ๊นŒ ํ•œ๋ฒˆ ๋” ์ƒ๊ฐํ•ด๋ณด์ž๊ตฌ์—ฌ ^___________^

 


๊ทธ๋ฆฌ๊ณ  ์Šคํƒ๋ฌธ์ œ๋กœ ๋„˜์–ด์˜ค๋ฉด์„œ ์ฒ˜์Œ์œผ๋กœ ํŒŒ์ด์ฌ์—์„œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋Š”๋ฐ์—ฌ...

๋น ๋ฅธ ์ž…๋ ฅ์œผ ๋ฐ”๊ฟ”์ฃผ๋ฉด ์‹œ๊ฐ„์ดˆ๊ณผ ์—๋Ÿฌ๋Š” ์•ˆ๋‚ฉ๋‹ˆ๋‹ค!!!

 

๋น ๋ฅธ ์ž…์ถœ๋ ฅ
import sys
num = int(sys.stdin.readline()) => input()
์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ˆซ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›๊ฑฐ๋‚˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์”Œ์›Œ์ฃผ๊ฑฐ๋‚˜ ๋„์–ด์“ฐ๊ธฐ๋ฅผ ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์›๋ž˜ ์•Œ๋˜ ๊ทธ๋Œ€๋กœ ์ž…๋‹ˆ๐Ÿฆซ

 

728x90
๋ฐ˜์‘ํ˜•

728x90
๋ฐ˜์‘ํ˜•

์˜ค๋žœ๋งŒ์— ๋ฐฑ์ค€ ํ’€์ด๋กœ ๋Œ์•„์™”์Šต๋‹ˆ๋‹ค ~~~~

ํ’€๋‹ค๊ฐ€ ์ œ ์ด๋ฆ„ ๋‚˜์™€์„œ ๋ฐ˜๊ฐ€์› ๊ฑธ๋ž‘์—ฌ ^ ___________- ^

์˜ˆ์ œ ์ž…๋ ฅ 1 

1 3 -1 4 1 7

์˜ˆ์ œ ์ถœ๋ ฅ 1 

2 -1

์˜ˆ์ œ ์ž…๋ ฅ 2 

2 5 8 3 -4 -11

์˜ˆ์ œ ์ถœ๋ ฅ 2 

-1 2

๋‚ดํ’€ ๐Ÿฆท

# 19532. ์ˆ˜ํ•™์€ ๋น„๋Œ€๋ฉด ๊ฐ•์˜์ž…๋‹ˆ๋‹ค
# ์—ฐ๋ฆฝ๋ฐฉ์ •์‹์˜ x, y ๊ฐ’์„ ๊ตฌํ•˜๋ผ
a, b, c, d, e, f = map(int, input().split())
x = -999
y = -999
answer = []
for x in range(-999, 1000):
    for y in range(-999, 1000):
        if a * x + b * y == c and d * x + e * y == f:
            answer.append(x)
            answer.append(y)

result = ' '.join(map(str, answer))
print(result)

๋„ˆ๋ฌด ๋ฌด์‹ํ•˜๊ฒŒ ๋ธŒ๋ฃจํŠธ ํฌ์Šค๋ฅผ ์ž˜ ์ ์šฉํ•ด์•ผ ํ–ˆ๋‹ค๊ณ  ํ•ด์•ผํ•˜๋‚˜์š” ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ ํ™˜์žฅ..

-999๋ถ€ํ„ฐ 999๊นŒ์ง€ ์ค‘์— ์žˆ๋‹ค๊ณ  ํ•ด์„œ ํ•œ๋ฒˆ ๋„ฃ์–ด๋ดค์–ด๋ผ ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹

x, y์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ answer ๋ฆฌ์ŠคํŠธ์— ๋„ฃ์–ด์คฌ๊ณ ์š”

๋ฆฌ์ŠคํŠธ์˜ ๋Œ€๊ด„ํ˜ธ ์—†์ด ๋‚˜์™€์•ผ ํ•˜๋‹ˆ๊นŒ ์กฐ์ธํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ํ’€์–ด์คฌ์Šต๋‹ˆ๋‹ค...

 

๋‹ค๋ฅธ ๋ถ„๋“ค ํ’€์ด๋ฅผ ๋ณด๋‹ˆ๊นŒ 

x์™€ y๋ฅผ a, b, c, d, e, f๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•œ์ชฝ์œผ๋กœ ๋ถ„๋ฐฐ๋ฅผ ํ•œ ํ›„์— 

for ๋ฌธ ์—†์ด ๋ฐ”๋กœ ํ‘ธ์…จ๋”๋ผ๊ตฌ์š” !!

ํ•œ ์ˆ˜ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค๐Ÿ‘๐Ÿ‘

 

2์ฐจ์› ๋ฐฐ์—ด์—์„œ ์˜ค๋Š˜ ์ˆ˜์—… ๋ณต์Šต์šฉ์œผ๋กœ ์Šคํ„ฐ๋””์›์ด ์ถ”์ฒœํ•ด์ค˜์„œ ํ’€์–ด๋ดค๋Š”๋ฐ..

์žฌ๋ฐŒ๋Š”(?) ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค ๐Ÿคฃ๐Ÿคฃ๐Ÿคฃ๐Ÿคฃ๐Ÿคฃ๐Ÿคฃ๐Ÿคฃ

 

 


์˜ค๋Š˜ ๋ฐฐ์› ๋˜ ๋ธŒ๋ฃจํŠธ ํฌ์Šค์— ๊ด€ํ•ด ์ž ์‹œ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๋ฉฐ๋Š”...

 

๊ณ ์ง€์‹ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Brute Force)

  : ๋ฌธ์ž์—ด์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ฐจ๋ก€๋Œ€๋กœ ์ˆœํšŒํ•˜๋ฉด์„œ ํŒจํ„ด ๋‚ด์˜ ๋ฌธ์ž๋“ค์„ ์ผ์ผ์ด ๋น„๊ตํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘

 

 +) ๊ณ ์ง€์‹ํ•œ ํŒจํ„ด ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„

  : ์ตœ์•…์˜ ๊ฒฝ์šฐ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ํ…์ŠคํŠธ์˜ ๋ชจ๋“  ์œ„์น˜์—์„œ ํŒจํ„ด์„ ๋น„๊ตํ•ด์•ผ ํ•˜๋ฏ€๋กœ O(MN)์ด ๋จ

  M : ์ฐพ์„ ํŒจํ„ด์˜ ๊ธธ์ด / N : ์ „์ฒด ํ…์ŠคํŠธ์˜ ๊ธธ์ด

 

# ๋ธŒ๋ฃจํ†  ํฌ์Šค ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ
def BruteForce(p, t):
    M = len(p)
    N = len(t)
    for i in range(N-M+1):
        for j in range(M): # ํŒจํ„ด์˜ ๊ธธ์ด๋งŒํผ ์ˆœํšŒ
            # ํŒจํ„ด ๋งค์นญ
            if t[i + j] != p[j]:
                break  # ๋งค์นญ ์‹คํŒจ
            else:
                # ๊ฒ€์ƒ‰ ์„ฑ๊ณต
                return i  # t์ธ๋ฑ์Šค ๋ฐ˜ํ™˜

    # ๊ฒ€์ƒ‰ ์‹คํŒจ
    return -1

p = 'is'
t = 'This is a book~!'

result = BruteForce(p, t) 
print(result) # 2

๋‹ค์Œ์— ๋˜ ์žฌ๋ฐŒ๋Š” ๋ฌธ์ œ ๊ฐ€์ง€๊ณ  ๋Œ์•„์˜ฌ๊ป˜์˜

728x90
๋ฐ˜์‘ํ˜•

+ Recent posts