728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ๐Ÿ˜‚

์˜ค๋Š˜๋„ ์„œ์ค€์ด๋Š” ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS) ์ˆ˜์—… ์กฐ๊ต๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค. ์•„๋น ๊ฐ€ ์ˆ˜์—…ํ•œ ๋‚ด์šฉ์„ ํ•™์ƒ๋“ค์ด ์ž˜ ์ดํ•ดํ–ˆ๋Š”์ง€ ๋ฌธ์ œ๋ฅผ ํ†ตํ•ด์„œ ํ™•์ธํ•ด๋ณด์ž.

N๊ฐœ์˜ ์ •์ ๊ณผ M๊ฐœ์˜ ๊ฐ„์„ ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„(undirected graph)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ •์  ๋ฒˆํ˜ธ๋Š” 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ์ด๊ณ  ๋ชจ๋“  ๊ฐ„์„ ์˜ ๊ฐ€์ค‘์น˜๋Š” 1์ด๋‹ค. ์ •์  R์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰์œผ๋กœ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•  ๊ฒฝ์šฐ ๋…ธ๋“œ์˜ ๋ฐฉ๋ฌธ ์ˆœ์„œ๋ฅผ ์ถœ๋ ฅํ•˜์ž.

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

bfs(V, E, R) {  # V : ์ •์  ์ง‘ํ•ฉ, E : ๊ฐ„์„  ์ง‘ํ•ฉ, R : ์‹œ์ž‘ ์ •์ 
    for each v ∈ V - {R}
        visited[v] <- NO;
    visited[R] <- YES;  # ์‹œ์ž‘ ์ •์  R์„ ๋ฐฉ๋ฌธ ํ–ˆ๋‹ค๊ณ  ํ‘œ์‹œํ•œ๋‹ค.
    enqueue(Q, R);  # ํ ๋งจ ๋’ค์— ์‹œ์ž‘ ์ •์  R์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
    while (Q ≠ ∅) {
        u <- dequeue(Q);  # ํ ๋งจ ์•ž์ชฝ์˜ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
        for each v ∈ E(u)  # E(u) : ์ •์  u์˜ ์ธ์ ‘ ์ •์  ์ง‘ํ•ฉ.(์ •์  ๋ฒˆํ˜ธ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋ฐฉ๋ฌธํ•œ๋‹ค)
            if (visited[v] = NO) then {
                visited[v] <- YES;  # ์ •์  v๋ฅผ ๋ฐฉ๋ฌธ ํ–ˆ๋‹ค๊ณ  ํ‘œ์‹œํ•œ๋‹ค.
                enqueue(Q, v);  # ํ ๋งจ ๋’ค์— ์ •์  v๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
            }
    }
}

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ •์ ์˜ ์ˆ˜ N (5 ≤ N ≤ 100,000), ๊ฐ„์„ ์˜ ์ˆ˜ M (1 ≤ M ≤ 200,000), ์‹œ์ž‘ ์ •์  R (1 ≤ R ≤ N)์ด ์ฃผ์–ด์ง„๋‹ค.

๋‹ค์Œ M๊ฐœ ์ค„์— ๊ฐ„์„  ์ •๋ณด u v๊ฐ€ ์ฃผ์–ด์ง€๋ฉฐ ์ •์  u์™€ ์ •์  v์˜ ๊ฐ€์ค‘์น˜ 1์ธ ์–‘๋ฐฉํ–ฅ ๊ฐ„์„ ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. (1 ≤ u < v ≤ N, u  v) ๋ชจ๋“  ๊ฐ„์„ ์˜ (u, v) ์Œ์˜ ๊ฐ’์€ ์„œ๋กœ ๋‹ค๋ฅด๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์ •์ˆ˜๋ฅผ ํ•œ ๊ฐœ์”ฉ ์ถœ๋ ฅํ•œ๋‹ค. i๋ฒˆ์งธ ์ค„์—๋Š” ์ •์  i์˜ ๋ฐฉ๋ฌธ ์ˆœ์„œ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์‹œ์ž‘ ์ •์ ์˜ ๋ฐฉ๋ฌธ ์ˆœ์„œ๋Š” 1์ด๋‹ค. ์‹œ์ž‘ ์ •์ ์—์„œ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ 0์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

๋‚ด ํ’€๐Ÿฆท

# 24444. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—… - ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰1
from collections import deque # ์š”๊ฑฐ ์•ˆํ•˜๊ณ  ๊ทธ๋ƒฅ stack์œผ๋กœ ํ•˜๋ฉด ์—๋Ÿฌ ๋‚˜์š”...
import sys  
input = sys.stdin.readline

def bfs(R, V): # V: ์ •์  ๊ฐœ์ˆ˜, E ๊ฐ„์„ , R : ์‹œ์ž‘ ์ •์ 
    global visited
    visited = [0] * (V+1)
    q = deque([R])   # deque = deque() => ๋น„์–ด์žˆ๋Š” ํ ๋งŒ๋“ค๊ธฐ
    visited[R] = 1
    order = 1   # ๋ช‡๋ฒˆ์งธ์ธ์ง€ ์•Œ๊ธฐ์œ„ํ•ด์„œ ์ˆœ์„œ๋ฅผ 1๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ฃผ๊ณ 
    while q:
        t = q.popleft() # pop(0)
        # num[t].sort()
        for i in num[t]:
            # for i in sorted(num[t]): #sorted๋ฅผ ์“ธ๊บผ๋ฉด ์ด๋ ‡๊ฒŒ!!!
            if visited[i] == 0:
                q.append(i)
                order += 1 # ์ฐพ์„๋–„๋งˆ๋‹ค ์ˆœ์„œ๋ฅผ 1์”ฉ ๋”ํ•ด์ค€๋‹ค
                visited[i] = order


N, M, R = map(int, input().split())
num = [[] for _ in range(N+1)]

for _ in range(M):
    v1, v2 = map(int, input().split())
    num[v1].append(v2)
    num[v2].append(v1)

for k in num:
    k.sort()

bfs(R, N)

for s in visited[1::]:
    print(s)

 

๋ฌธ์ œ ํ’€๋ฉด์„œ ์–ด๋ ค์› ๋˜ ์ ...

 

1. ์‹œ๊ฐ„์ดˆ๊ณผ => import collections import deque์™€ import sys๋กœ ํ•ด๊ฒฐ!!

 

- deque์™€ stack๊ณผ ๋‹ค๋ฅธ ์ ๋“ค... 

  • deque = deque() => ๋น„์–ด ์žˆ๋Š” ํ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ  (stack์€ q = [])
  • popleft() => ์ œ์ผ ์ฒซ ๊ฐ’ ๋นผ์ฃผ๊ธฐ (stack์€ pop(0))

 

2. ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋ฝ‘์•„ ์ž…๋ ฅ๋ฐ›์€๊ฒƒ๋“ค์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ (๋‚˜๋Š” ์ž…๋ ฅ ๋ฐ›์€ ์ˆœ ๊ณ ๋Œ€๋กœ ๋งŒ๋“ค์–ด์„œ ๊ณ„์† ์ •๋‹ต์ด ์•ˆ ๋‚˜์™”๋‹ค...)

  • num[t].sort()
  • for i in sorted(num[t])
  • for k in num: k.sort() .... ๋“ฑ๋“ฑ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค(์ด์ฐจ์› ๋ฐฐ์—ด์ด๋ผ ์‰ฝ์ง€์•Š์Œ..)

 

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

1) BFS(๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰)

๊ทธ๋ž˜ํ”„์™€ ํŠธ๋ฆฌ์˜ ๊ฐ€๊นŒ์šด ๋…ธ๋“œ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜.. ํ์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉ

 

- ๋™์ž‘๊ณผ์ •

  • ํƒ์ƒ‰ ์‹œ์ž‘ ๋…ธ๋“œ๋ฅผ ํ์— ์‚ฝ์ž…ํ•˜๊ณ  ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ
  • ํ์—์„œ ๋…ธ๋“œ๋ฅผ ๊บผ๋‚ด ํ•ด๋‹น ๋…ธ๋“œ์˜ ์ธ์ ‘ ๋…ธ๋“œ ์ค‘ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๊ณณ์„ ํ์— ์‚ฝ์ž…ํ•˜๊ณ  ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ
  • ํ๊ฐ€ ์—†์–ด์งˆ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต!!
def bfs(s, V): # ์‹œ์ž‘ ์ •์  s, ๋งˆ์ง€๋ง‰ ์ •์  V
    # visited ์ƒ์„ฑ => ์ด ์ˆœ์„œ ๊ธฐ์–ตํ•˜๊ธฐ!!!!!
    visited = [0] * (V + 1)
    # ํ์ƒ์„ฑ
    q = []  # ์ด ํƒ€์ด๋ฐ์— q = [s] ํ•ด๋„ ๋ฉ๋‹ˆ๋‹น
    # ์‹œ์ž‘์  ์ธํ
    q.append(s)
    # ์‹œ์ž‘์  ๋ฐฉ๋ฌธ ํ‘œ์‹œ
    visited[s] = 1
    while q: # ํ์— ์ •์ ์ด ๋‚จ์•„์žˆ์œผ๋ฉด ๊ณ„์† ์ง„ํ–‰... (front != rear ๋ผ๊ณ ๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅ!! ๊ฐ™์œผ๋ฉด ๋นˆ๊ฑฐ๋‹ˆ๊นŒ
        t = q.pop(0) # ๋””ํ, ์•ž์—์„œ ๋ฝ‘์•„์•ผ๊ฒŸ์ฅฌ
        print(t)    # ๋ฐฉ๋ฌธํ•œ ์ •์ ์—์„œ ํ• ์ผ
        # ์ธ์ ‘ํ•œ ์ •์  ์ค‘ ์ธํ๋˜์ง€ ์•Š์€ ์ •์  w๊ฐ€ ์žˆ์œผ๋ฉด
        for w in adj_l[t]:
            if visited[w] == 0:
                # w๋ฅผ ์ธํ, ์ธํ ๋˜์—ˆ์Œ์„ ํ‘œ์‹œ
                q.append(w)
                # visited[w] = 1
                visited[w] = visited[t] + 1 #### ์ตœ์†Œ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•  ๋•Œ ์ข‹์•„์šฉ ###
    # print(visited[1:])

 

์ €ํฌ ์‹œํ—˜์ด import๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ๊ฐ€ ์—†์–ด๊ฐ€์ง€๊ตฌ...

๋ฌธ์ œ ํ’€๋•Œ deque๋ฅผ ์“ฐ์ง€ ์•Š์•„ ์ƒ์†Œํ•œ๋ฐ์š”... ๋ฐํฌ ์“ฐ๋Š” ๋ฒ•์€ ๐Ÿ‘‡๐Ÿ‘‡

 

from collections import deque

def bfs(start):
    global graph, visited
    
    queue = deque([start]) # ์‹œ์ž‘์ ์„ ํ์— ๋„ฃ์–ด์ค๋‹ˆ๋‹ค
    visited[start] = True  # ๋ฐฉ๋ฌธ ํ‘œ์‹œ๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค
    
    while queue: # ํ์— ๋‚จ์•„์žˆ๋Š” ๊ฐ’์ด ์—†์„ ๋–„๊นŒ์ง€ ๋ฐ˜๋ณต!!
        v = queue.popleft() # ํ์˜ ์ฒซ๋ฒˆ์งธ ๊ฐ’์„ ๋นผ์˜ต๋‹ˆ๋‹ค
        print(v, end = '') # ์–ด๋–ค ๊ฒฝ๋กœ๋กœ ๋ฐฉ๋ฌธํ–ˆ๋Š”์ง€ ์ ์–ด์ค๋‹ˆ๋‹ค
        
        for i in graph[v]:  # v์— ์ธ์ ‘ํ•œ ๊ณณ์„ ๋Œ๋ฉด์„œ
            if not visited[i]: # ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด
                queue.append(i) # ํ์— ๋„ฃ์–ด์ฃผ๊ณ 
                visited[i] = True # ๋ฐฉ๋ฌธ ํ‘œ์‹œ๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค

bfs(1) # 1์€ ๊ทธ๋ƒฅ ์‹œ์ž‘์  ์˜ˆ๋ฅผ 1๋กœ ๋“ ๊ฑฐ..
728x90
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ๐Ÿ˜‚

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

๋„์ฐฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉด 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. ๋ฏธ๋กœ
# ์ถœ๋ฐœ์ง€์—์„œ ๋ชฉ์ ์ง€์— ๋„์ฐฉํ•˜๋Š” ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ

# ์‚ฌ๋ฐฉ ํƒ์ƒ‰
dx = [0, 1, 0, -1] # ๋ฒ”์œ„ ์ œ๋Œ€๋กœ ํ™•์ธ
dy = [-1, 0, 1, 0]
def miro(i, j):
    global result # ๊ฒฐ๊ณผ๊ฐ’ ์ „์—ญ๋ณ€์ˆ˜๋กœ ์„ค์ •ํ•ด์ฃผ๊ธฐ
    visited[i][j] = True # ๋ฐฉ๋ฌธํ•œ ๊ณณ 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}')

 

๋‚ด๊ฐ€ ์ž˜ ๋ชป ํ’€์—ˆ๋˜ ์ ...

 

1. ์‚ฌ๋ฐฉ ํƒ์ƒ‰ ๋ฒ”์œ„ ํ™•์ธ!!! : ์ž˜๋ชป ์ ์—ˆ๋“œ๋ž˜์š”.. ๊ผญ ํ™•์ธํ•˜๊ณ  ์ ๊ธฐ;;;

2. Runtime error : strip()์„ ์‚ฌ์šฉํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค๊ณ  ๊ทธ๋Ÿฌ๋Š”๋ฐ...

    ์šฐ๋ฆฌ ๋ˆˆ์—๋Š” ์•ˆ ๋ณด์ด์ง€๋งŒ \n ์ด ํฌํ•จ ๋˜์–ด ์žˆ์„์ง€๋„ ๋ชจ๋ฅธ๋‹ค๊ณ ํ•˜๋„ค์š”....

    ๊ทธ๋ฆฌ๊ณ  input()์€ ์•Œ์•„์„œ ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•ด์ฃผ์ง€๋งŒ

    sys๋ฅผ ์‚ฌ์šฉํ•  ๋–„๋Š” ๊ทธ๋Ÿฐ ๊ธฐ๋Šฅ์ด ์—†์–ด์„œsys.stdin.readline().strip() ๊ฐ™์ด ๋ฌด์กฐ๊ฑด ์จ์ค˜์•ผ ํ•œ๋ฐ์š”!! ๐Ÿ˜ต‍๐Ÿ’ซ

 

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

 

1) ํƒ์ƒ‰

: ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ ์ค‘์—์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ๊ณผ์ •

 ex) DFS, BFS

 

 

2) DFS(๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰)

  • ์Šคํƒ ์ž๋ฃŒ๊ตฌ์กฐ์— ๊ธฐ์ดˆํ•œ๋‹ค..
  • ์‹ค์žฌ๋กœ๋Š” ์Šคํƒ๋ณด๋‹ค๋Š” ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ„๊ฒฐํ•˜๊ฒŒ(?) ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค
  • ์‹œ๊ฐ„ ๋ณต์žก๋„ : O(N)
# dfs & ์žฌ๊ท€ ํ•จ์ˆ˜
def dfs(v): # v : ์‹œ์ž‘์ 
    global visited, graphs  # ํ•จ์ˆ˜ ์•ˆ์—์„œ ๋งŒ๋“ค์–ด์ค€๊ฒŒ ์•„๋‹ˆ๋ผ ์•ˆ์ •์„ฑ์„ ์œ„ํ•ด ์ „์—ญ๋ณ€์ˆ˜๋กœ ์„ค์ •ํ•ด์ฃผ์—ˆ๋‹ค
    visited[v] = True
    
    for i in graphs[v]: # ์ธ์ ‘ํ•ด ์žˆ๋Š” ๊ณณ ์ค‘์— 
        if not visited[i]: # ๋ฐฉ๋ฌธ์„ ์•ˆํ–ˆ๋‹ค๋ฉด
            dfs(i)  # ๊ทธ ๊ณณ์„ ํƒ์ƒ‰!!
        
        else:
            continue # ์ด๋ฏธ ๋ฐฉ๋ฌธํ•œ ๊ณณ ํŒจ์Šค # ์ด ๋ถ€๋ถ„ ์•ˆ ์ ์–ด์ค˜๋„ ๋œ๋‹ค
            
graph = [] # ๊ทธ๋ž˜ํ”„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ(์ธ์ ‘ ํ–‰๋ ฌ ์–ด๋ ค์›€ ใ…œใ…œ)
visited = [] # ๊ฐ ๋…ธ๋“œ๊ฐ€ ๋ฐฉ๋ฌธ๋œ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” 1 ์ฐจ์› ๋ฆฌ์ŠคํŠธ(true, flase/ 0,1๋กœ ๊ตฌ๋ฌธ)

dfs(0)

 

 => ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ๋–„๋Š” dfs ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹๋‹ค๊ณ  ํ•˜๋„ค์š”..

728x90
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ ๐Ÿ˜‚

Forth๋ผ๋Š” ์ปดํ“จํ„ฐ ์–ธ์–ด๋Š” ์Šคํƒ ์—ฐ์‚ฐ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ณ  ์žˆ์–ด ํ›„์œ„ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 3+4๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ๊ธฐํ•œ๋‹ค.
 

3 4 + .
 

Forth์—์„œ๋Š” ๋™์ž‘์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
 

์ˆซ์ž๋Š” ์Šคํƒ์— ๋„ฃ๋Š”๋‹ค.

์—ฐ์‚ฐ์ž๋ฅผ ๋งŒ๋‚˜๋ฉด ์Šคํƒ์˜ ์ˆซ์ž ๋‘ ๊ฐœ๋ฅผ ๊บผ๋‚ด ๋”ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ์Šคํƒ์— ๋„ฃ๋Š”๋‹ค.

‘.’์€ ์Šคํƒ์—์„œ ์ˆซ์ž๋ฅผ ๊บผ๋‚ด ์ถœ๋ ฅํ•œ๋‹ค.

 

Forth ์ฝ”๋“œ์˜ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ์‹œ์˜ค. ๋งŒ์•ฝ ํ˜•์‹์ด ์ž˜๋ชป๋˜์–ด ์—ฐ์‚ฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ‘error’๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
 

๋‹ค์Œ์€ Forth ์—ฐ์‚ฐ์˜ ์˜ˆ์ด๋‹ค.
 

์ฝ”๋“œ ์ถœ๋ ฅ
4 2 / . 2
4 3 - . 1

 

 

[์ž…๋ ฅ]
 

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

๋‹ค์Œ ์ค„๋ถ€ํ„ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๋ณ„๋กœ ์ •์ˆ˜์™€ ์—ฐ์‚ฐ์ž๊ฐ€ 256์ž ์ด๋‚ด์˜ ์—ฐ์‚ฐ์ฝ”๋“œ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ํ”ผ์—ฐ์‚ฐ์ž์™€ ์—ฐ์‚ฐ์ž๋Š” ์—ฌ๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ฝ”๋“œ๋Š” ‘.’๋กœ ๋๋‚œ๋‹ค.

๋‚˜๋ˆ—์…ˆ์˜ ๊ฒฝ์šฐ ํ•ญ์ƒ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง„๋‹ค.

 

[์ถœ๋ ฅ]
 

#๊ณผ 1๋ฒˆ๋ถ€ํ„ฐ์ธ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๋ฒˆํ˜ธ, ๋นˆ์นธ์— ์ด์–ด ๊ณ„์‚ฐ๊ฒฐ๊ณผ๋ฅผ ์ •์ˆ˜๋กœ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ‘error’๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

๋‚ด ํ’€๐Ÿฆท

# 4874. Forth

# ์ž…๋ ฅ๋ฐ›๊ธฐ
T = int(input())
for tc in range(1, T + 1):
    # ์—ฌ๊ธฐ์„œ ๋ฌธ์ž๋กœ ๋ฐ›์•„์„œ ๋‚˜์ค‘์— ์ˆซ์ž๋กœ ๋”ฐ๋กœ ๋ฐ”๊ฟ”์ค˜์•ผ ํ•จ
    susik = input().split()
    # ๋งˆ์ง€๋ง‰์— ์ ์ด ์žˆ์–ด์„œ ๋ฏธ๋ฆฌ ์ง€์›Œ์คŒ
    susik.pop()
    # ์—ฐ์‚ฐ์„ ๋‹ด์•„์ค„ ๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐ
    num = []
    # ๊ฒฐ๊ณผ๊ฐ’ 1๋กœ ์ดˆ๊ธฐํ™”, 0์ด๋ฉด ์—๋Ÿฌ๋กœ ์ถœ๋ ฅ, 1์ด๋ฉด ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ๊ฐ’ ์ถœ๋ ฅ
    result = 1

    # ์ˆ˜์‹์„ ๋„๋Š” ๋™์•ˆ
    for i in range(len(susik)):
        # ์ˆ˜์‹์ด ํ”ผ์—ฐ์‚ฐ์ž๋ฉด
        if susik[i] not in ['+','-','*','/']:
            # ์ˆ˜์‹์— ๊ทธ ์ˆซ์ž๋ฅผ ์ •์ˆ˜๋กœ ๋ฐ”๊ฟ”์„œ ๋„ฃ์–ด์ค€๋‹ค
            num.append(int(susik[i]))

        # ์ˆ˜์‹์ด ์—ฐ์‚ฐ์ž๋ฉด
        else:
            # ์ˆซ์ž๊ฐ€ ๋‘๊ฐœ ์ด์ƒ ๋‚จ์•„์žˆ์–ด์•ผ ์—ฐ์‚ฐ์ž๋ฅผ ์ฒ˜๋ฆฌํ•ด ์ฃผ๋Š”๋ฐ ์•„๋‹ˆ๋ฉด
            # ๋งž๋Š” ์ˆ˜์‹์ด ์•„๋‹ˆ๋‹ˆ๊นŒ ํ‹€๋ ธ์œผ๋ฏ€๋กœ ๊ฒฐ๊ณผ๊ฐ’์„ 0์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค
            if len(num) < 2:
                result = 0
                break

            else: # ๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๊ฐ€ 2 ์ด์ƒ์ด๋ฉด ๋งž๋Š” ์ˆ˜์‹์ด๋ฏ€๋กœ ์ง„ํ–‰
                n1 = num.pop() # ๋‘๊ฐ€์ง€ ์ˆซ์ž๋ฅผ ๋ฝ‘๋Š”๊ฑฐ๋Š” ๋ชจ๋“  ๊ณผ์ •์—์„œ ์ง„ํ–‰๋˜๋ฏ€๋กœ ๋ฏธ๋ฆฌ ๋ฝ‘์•„์คŒ
                n2 = num.pop()
                new = 0

                if susik[i] == '*':
                    new = n2 * n1
                    num.append(new) # ์—ฐ์‚ฐ ํ›„ ๋‹ค์‹œ ๋ฆฌ์ŠคํŠธ์— ๋„ฃ์–ด์ค€๋‹ค
                    # num.append(n2*n1) # => ์ด๋Ÿฐ์‹์œผ๋กœ ๋ฐ”๋กœ ์ฒ˜๋ฆฌํ•˜๋Š”๊ฒŒ ๋” ์ข‹์€ ๋“ฏ
                elif susik[i] == '+':
                    new = n2 + n1
                    num.append(new)
                elif susik[i] == '-':
                    new = n2 - n1
                    num.append(new)
                elif susik[i] == '/':
                    new = n2 // n1 
                    ####### ์ด๋–ผ ๋ชซ ์—ฐ์‚ฐ์ž๋กœ ์•ˆํ•ด์ฃผ๋ฉด ๋‚˜์ค‘์— .0์ด ๋‚˜์˜ค๋Š” ์ผ€์ด์Šค๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค!!####
                    num.append(new)

    # ๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๊ฐ€ 1์ด ์•„๋‹ˆ๋ฉด ์—ฐ์‚ฐ์ž์™€ ์ˆซ์ž๊ฐ€ ๋‚จ์•„์žˆ๊ฑฐ๋‚˜
    # ์•„๋‹ˆ๋ฉด ์•„์˜ˆ ์—†์–ด์ง€๋Š” ํ‹€๋ฆฐ ์ˆ˜์‹์ด๋‹ค
    if len(num) != 1:
            result = 0

    if result:
        print(f'#{tc} {num[-1]}')
    else:
        print(f'#{tc} error')

#####

์ด ๋ฌธ์ œ ํ’€๋ฉด์„œ 2๊ฐ€์ง€๋ฅผ ์ž˜๋ชปํ–ˆ๋Š”๋ฐ....

 

- ์ˆซ์ž๋ฅผ ์ •์ˆ˜๋กœ ์•ˆ ๋ฐ›์•˜์œผ๋ฉด์„œ ๋‚˜์ค‘์— int๋กœ ๊ฐ’์„ ๋„ฃ์ง€ ์•Š์€ ๊ฒƒ..

- ๋‚˜๋ˆ„๊ธฐ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋”ฑ ์ •์ˆ˜๋กœ ๋‚˜๋ˆ  ๋–จ์–ด์ง€๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๊ฒฝ์šฐ๋„ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ // ๋ชซ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค..

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

์ค‘์œ„ ํ‘œ๊ธฐ๋ฒ•(infix notation)

: ์—ฐ์‚ฐ์ž๋ฅผ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ€์šด๋ฐ ํ‘œ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•

  ex) A + B (์šฐ๋ฆฌ๊ฐ€ ํ‰์†Œ์— ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•)

 

ํ›„์œ„ ํ‘œ๊ธฐ๋ฒ•(postfix notation)

: ์—ฐ์‚ฐ์ž๋ฅผ ํ”ผ์—ฐ์‚ฐ์ž ๋’ค์— ํ‘œ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•

 ex) AB + (์ปดํ“จํ„ฐ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•)

 

ํ›„์œ„ ํ‘œ๊ธฐ๋ฒ•์˜ ์ˆ˜์‹์„ ์Šคํƒ์„ ์ด์šฉํ•ด์„œ ๊ณ„์‚ฐํ•˜๊ธฐ

  1.  ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋งŒ๋‚˜๋ฉด ์Šคํƒ push
  2. ์—ฐ์‚ฐ์ž๋ฅผ ๋งŒ๋‚˜๋ฉด ํ•„์š”ํ•œ ๋งŒํผ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์Šคํƒ์—์„œ pop ํ•˜์—ฌ ์—ฐ์‚ฐํ•˜๊ณ , ์—ฐ์‚ฐ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ์Šคํƒ์— push
  3. ์ˆ˜์‹์ด ๋๋‚˜๋ฉด, ๋งˆ์ง€๋ง‰์œผ๋กœ ์Šคํƒ์„ popํ•˜์—ฌ ์ถœ๋ ฅ!!!

 

728x90
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

N๊ฐœ์˜ ์ •์ˆ˜ A[1], A[2], …, A[N]์ด ์ฃผ์–ด์ ธ ์žˆ์„ ๋•Œ, ์ด ์•ˆ์— X๋ผ๋Š” ์ •์ˆ˜๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” N๊ฐœ์˜ ์ •์ˆ˜ A[1], A[2], …, A[N]์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M(1 ≤ M ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M๊ฐœ์˜ ์ˆ˜๋“ค์ด ์ฃผ์–ด์ง€๋Š”๋ฐ, ์ด ์ˆ˜๋“ค์ด A์•ˆ์— ์กด์žฌํ•˜๋Š”์ง€ ์•Œ์•„๋‚ด๋ฉด ๋œ๋‹ค. ๋ชจ๋“  ์ •์ˆ˜์˜ ๋ฒ”์œ„๋Š” -231 ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ  231๋ณด๋‹ค ์ž‘๋‹ค.

์ถœ๋ ฅ

M๊ฐœ์˜ ์ค„์— ๋‹ต์„ ์ถœ๋ ฅํ•œ๋‹ค. ์กด์žฌํ•˜๋ฉด 1์„, ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ 1 

5
4 1 5 2 3
5
1 3 7 9 5

์˜ˆ์ œ ์ถœ๋ ฅ 1 

1
1
0
0
1

ํ‹€๋ฆฐ ๋‚ด ํ’€๐Ÿฆท

# 1920. ์ˆ˜์ฐพ๊ธฐ
import sys
input = sys.stdin.readline

N = int(input())
arr = list(map(int, sys.stdin.readline().split()))

M = int(input())
arr_2 = list(map(int, sys.stdin.readline().split()))
result = []

for j in range(M):
    one = []
    for i in range(N):
        if arr[i] == arr_2[j]:
            one.append(1)
            break
        else:
            one.append(0)

    # print(one)
    cnt = 0
    for k in one:
        if k == 1:
            cnt += 1
    if cnt >= 1:
        result.append(1)
    else:
        result.append(0)

for k in result:
    print(k)

๊ตฌ์ง๊ตฌ์งํ•˜๊ฒŒ ์งœ๊ธฐ ๋‹ฌ์ธ์ด ๋˜๋ฒ„๋ฆฐ ๋‚˜,,,,

๋‹จ๊ณ„๋ณ„ ํ’€์ด๋กœ ์•ˆ๋“ค์–ด๊ฐ€๊ณ  ์„ฑ๊ณต๋ฅ ๋กœ ๋“ค์–ด๊ฐ€์„œ ์•ˆ ํ’€์–ด์ ธ ์žˆ๋Š”๊ฑฐ ํ’€์–ด๊ฐ€์ง€๊ณ 

์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ํ’€์–ด์•ผํ•˜๋Š”์ง€ ํžŒํŠธ(์ด์ฐจ์› ๋ฐฐ์—ด์ด๋‹ค, ์ •๋ ฌ์ด๋‹ค, ์ด์ง„ํƒ์ƒ‰์ด๋‹ค ์ด๋Ÿฐ๊ฑฐ)๊ฐ€ ์—†์–ด์„œ ์–ด์นด์ง€ ํ•˜๋‹ค๊ฐ€

์ฐพ์•„์•ผํ•  ๊ฐ’์ด ์ฃผ์–ด์ง„ arr_2 ๋ฆฌ์ŠคํŠธ๋ฅผ ๋Œ๋ผ๋ฉด์„œ arr์„ ๋Œ๋ฆฌ๋Š” ์™„์ „ ํƒ์ƒ‰์œผ๋กœ ์ฐพ์•„์„œ ์žˆ์œผ๋ฉด ๋”ํ•ด์ฃผ๋ฉด ๋˜๊ฒ ๋‹ค..

์‹ถ์—ˆ๊ณ  ๋ฌด์Šจ์ผ๋กœ ์ธ๋ฑ์Šค ์•„์›ƒ์˜ค๋ธŒ๋ ˆ์ธ์ง€๋„ ์•ˆ๋‚˜๊ณ  ํ•œ๋ฒˆ์— ์„ฑ๊ณตํ–ˆ๋Š”๋””.... ํ–ˆ๋Š”๋ฐ.... ์ œ์ถœํ–ˆ๋Š”๋ฐ...

ํ–ˆ๋Š”๋ฐ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜๋ฒ„๋ ธ๋‹ค ใ…‹ใ…‹ ํ˜น์‹œ๋‚˜ ๋ชฐ๋ผ์„œ import sys๋กœ๋„ ๋ฐ”๊ฟ”๋ดค๋Š”๋ฐ ์‹คํŒจ....ใ…œใ…œ

์ˆ˜์ •๋œ ๋‚ด ํ’€๐Ÿฆท

๋ฐฑ์ค€์—์„œ ํ’€๋‹ค๊ฐ€ ๋ง‰ํžˆ๋ฉด ์งˆ๋ฌธ๊ฒŒ์‹œํŒ ๋“ค์–ด๊ฐ€์„œ ์ข…์ข… ํžŒํŠธ๋ฅผ ์–ป๋Š”๋ฐ

๋‚˜์ฒ˜๋Ÿผ ๊ตฌ์งˆ๊ตฌ์งˆํ•˜๊ฒŒ ํ‘ธ๋Š” ์‚ฌ๋žŒ์ด ์—†์—ˆ๊ณ  ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹

set์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ๋ฐ›์•„ ์‹œ๊ฐ„์„ ์ ๊ฒŒ ๊ฑธ๋ฆฌ๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‚˜ ์ด์ง„ ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค!!

๊ทธ๋Ÿฌ๊ณ  ๋ณด๋‹ˆ ์ด์ง„ ํƒ์ƒ‰์„ ์ด์šฉํ•˜๋ฉด ๋˜์—ˆ๋Š”๋ฐ ํ˜ผ์ž์„œ ๋ธŒ๋กœ๋…ธ๋งˆ์Šค(๋ฌด์ง€์„ฑ)์œผ๋กœ ํ•˜๊ณ ์žˆ์—ˆ๋‹ค....

 

 

๊ทธ๋ž˜์„œ ๋จผ์ € ํ•ด๋ณธ set() ์œผ๋กœ ์ž…๋ ฅ ๋ฐ›๊ธฐ =>

N = int(input())
arr = set(map(int, input().split())) # ์ถœ๋ ฅ ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•ด set ๋ฐ›์Œ

M = int(input())
arr_2 = list(map(int, input().split()))

for i in arr_2:
    if i in arr: print(1)
    else: print(0)

๊ฒฐ๊ณผ๋Š” ์„ฑ๊ณต~~~~~

set์„ ์ž์ฃผ ์•ˆ ์“ฐ๋‹ค๋ณด๋‹ˆ ์–ด๋–ค ๋ถ€๋ถ„์—์„œ ์“ธ์ง€ ๋ชฐ๋ž๋Š”๋ฐ

์ž…๋ ฅ์„ set์œผ๋กœ ๋ฐ›์•„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค!!

์ด์ง„ํƒ์ƒ‰์œผ๋กœ ํ’€์€ ๋‚ด ํ’€๐Ÿฆท

๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ค‘์— ํ•˜๋‚˜์ธ ๋ฐ”์ด๋„ˆ๋ฆฌ ์„œ์น˜๋ฅผ ํ†ตํ•œ ๋ฐฉ๋ฒ•๋„ ๋งŽ์ด ๋ณด์—ฌ์„œ ๋„์ „ํ•ด ๋ณด์•˜๋‹ค~~

N = int(input())
arr = list(map(int, input().split()))
arr.sort() # ์ด์ง„ํƒ์ƒ‰์€ ์ •๋ ฌ๋œ ๊ฒƒ๋“ค ํƒ์ƒ‰ํ•˜๋Š”๋ฐ ์ด ๋ถ€๋ถ„ ๊ธฐ์–ต์„ ๋ชปํ•ด์„œ ๋ฌดํ•œ ๋ฃจํ”„๋กœ ๋ช‡๋ฒˆ ๋‹ค๋…€์™”๋‹ค
M = int(input())
arr_2 = list(map(int, input().split()))

for i in arr_2:
    # ๋ฐ”์ด๋„ˆ๋ฆฌ ์„œ์น˜ ํ™œ์šฉํ•˜๊ธฐ(์ด์ง„ํƒ์ƒ‰)
    result = False 
    start = 0 # ์‹œ์ž‘ ์ธ๋ฑ์Šค
    end = N - 1 # ๋ ์ธ๋ฑ์Šค

    while start <= end:
        mid = ((start + end) // 2) # ์ค‘๊ฐ„๊ฐ’์˜ ์œ„์น˜์— ํ•ด๋‹นํ•˜๋Š” ์ˆ˜์™€ ๋ชฉํ‘œ ๋น„๊ตํ•ด ๋‚˜๊ฐ
        if i == arr[mid]: # ์ค‘๊ฐ„๊ฐ’๊ณผ ๋ชฉํ‘œ๊ฐ’์ด ๊ฐ™๋‹ค๋ฉด
            result = True
            break
        elif i > arr[mid]:
            start = mid + 1
        else:
            end = mid - 1

    if result:
        print(1)
    else:
        print(0)

์‹œํ—˜์—๋„ ๋‚˜์˜ค๊ธฐ๋Š” ํ–ˆ์ง€๋งŒ ์˜ค๋žœ๋งŒ์— ์ด์ง„ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•ด์„œ ๊ณ„์† ํ‹€๋ฆฐ๊ฐ’์ด ๋‚˜์˜ค๊ณ 

๋ฌดํ•œ๋ฃจํ”„๋กœ ์ž ์‹œ ๋จผ๋‚˜๋ผ์ด์›ƒ๋‚˜๋ผ ๋‹ค๋…€์™”๋‹ค....

์ค‘๊ฐ„๊ฐ’๊ณผ ๋ชฉํ‘œ๊ฐ’์„ ๋น„๊ตํ•˜๋ฉด์„œ ์‹œ์ž‘์ ์ด ๋งˆ์ง€๋ง‰์ ๋ณด๋‹ค ๋„˜์–ด์„œ๋ฉด ์ข…๋ฃŒ๋˜๋Š” ๊ธฐ์ €์กฐ๊ฑด์„ ์„ค์ •ํ•˜์˜€๋‹ค!!!!

 

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

1) ์ด์ง„ ๊ฒ€์ƒ‰(Binary Search)

:  ์ž๋ฃŒ์˜ ๊ฐ€์˜จ๋ฐ์— ์žˆ๋Š” ํ•ญ๋ชฉ์˜ ํ‚ค ๊ฐ’๊ณผ ๋น„๊ตํ•˜์—ฌ ๋‹ค์Œ ๊ฒ€์ƒ‰์˜ ์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  ๊ฒ€์ƒ‰์„ ๊ณ„์† ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•

 => ๋ชฉ์  ํ‚ค๋ฅผ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ์ด์ง„ ๊ฒ€์ƒ‰์„ ์ˆœํ™˜์ ์œผ๋กœ ๋ฐ˜๋ณต ์ˆ˜ํ–‰ํ•จ์œผ๋กœ์จ ๊ฒ€์ƒ‰ ๋ฒ”์œ„๋ฅผ ๋ฐ˜์œผ๋กœ ์ค„์—ฌ๊ฐ€๋ฉด์„œ ๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•œ๋‹ค

 

- ์ด์ง„ ๊ฒ€์ƒ‰์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ž๋ฃŒ๊ฐ€ ์ •๋ ฌ๋œ ์ƒํƒœ์—ฌ์•ผ ํ•œ๋‹ค(์ •๋ ฌ์ด ์•„๋‹ˆ๋ผ ๋’ค์— ์ˆ˜๊ฐ€ ์•ž์— ์ˆ˜๋ณด๋‹ค ์ปค๋ฒ„๋ฆฌ๋ฉด ์˜ค๋ฐ”์ž๋‚˜.. ์ฐพ์„ ์ˆ˜๊ฐ€ ์—†์Œ!!!!!! ์ฃผ์˜!!!!!!!!1..)

 

- ๊ฒ€์ƒ‰ ๊ณผ์ •

  1. ์ž๋ฃŒ์˜ ์ค‘์•™์— ์žˆ๋Š” ์›์†Œ๋ฅผ ๊ณ ๋ฅธ๋‹ค
  2. ์ค‘์•™ ์›์†Œ์˜ ๊ฐ’๊ณผ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๋ชฉํ‘œ ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค
  3. ๋ชฉํ‘œ๊ฐ’์ด ์ค‘์•™ ์›์†Œ์˜ ๊ฐ’๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ž๋ฃŒ์˜ ์™ผ์ชฝ ๋ฐ˜์— ๋Œ€ํ•ด์„œ ์ƒˆ๋กœ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰, ํฌ๋‹ค๋ฉด ์ž๋ฃŒ์˜ ์˜ค๋ฅธ์ชฝ ๋ฐ˜์— ๋Œ€ํ•ด์„œ ์„ธ๋กœ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰
  4. ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ ์ฐพ์„ ๋–„๊นŒ์ง€ 1~3์˜ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค
  5. ์ฐพ๋Š”๋‹ค๋ฉด ์„ฑ๊ณต, ๋ชป ์ฐพ์œผ๋ฉด ์‹คํŒจ

- ๊ตฌํ˜„

  • ๊ฒ€์ƒ‰ ๋ฒ”์œ„์˜ ์‹œ์ž‘์ ๊ณผ ์ข…๋ฃŒ์ ์„ ์ด์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰์„ ๋ฐ˜๋ณต ์ˆ˜ํ–‰ํ•œ๋‹ค => while์˜ ์ข…๋ฃŒ ์กฐ๊ฑด์„ ์ž˜ ์„ค์ •ํ•˜๊ธฐ
  • ์ด์ง„ ๊ฒ€์ƒ‰์˜ ๊ฒฝ์šฐ, ์ž๋ฃŒ์— ์‚ฝ์ž…์ด๋‚˜ ์‚ญ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋ฐฐ์—ด์˜ ์ƒํƒœ๋ฅผ ํ•ญ์ƒ ์ •๋ ฌ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋Š” ์ถ”๊ฐ€ ์ž‘์—…์ด ํ•„์š”
# ์ด์ง„ ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜
def binarySweach(a, N, key):
	start = 0  # ์‹œ์ž‘์  
    end = N -1  # ์ข…๋ฃŒ์ 
    while start <= end:
    	middle = (start + end) // 2 # ๋ชซ์œผ๋กœ ํ•˜๋Š” ์ด์œ  : ๋‚˜๋ˆ„๊ธฐ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด .0์œผ๋กœ float๋˜๊ฑธ๋ž‘
        if a[middle] == key: # ๊ฒ€์ƒ‰ ์„ฑ๊ณต
        	 return true
        elif a[middle] > key:
        	 end = middle - 1
        else:
        	start = middle + 1
    return flase # while ๋ฌธ์„ ๋‹ค ๋Œ์•˜๋Š”๋ฐ๋„ ์ฐพ์ง€๋ชปํ•œ๋‹ค๋ฉด ๊ฒ€์ƒ‰ ์‹คํŒจ

 

728x90
๋ฐ˜์‘ํ˜•
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
๋ฐ˜์‘ํ˜•

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

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

๋‹ค ํ’€๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ์–ด์ œ ํ’€๋‹ค ๋งŒ ๋ธŒ๋ฃจํˆฌํ† ์Šค์— ์ฒด์Šค๊ฐ€ ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ ค์„œ 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
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•

6๋‹จ๊ณ„๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜๋ฉด ์‹ค๋ฒ„๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ง์„ ๋“ค์—ˆ๋Š”๋ฐ ๋“œ๋””์–ด 6๋‹จ๊ณ„๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค ใ…Žใ…Žใ…Ž

์–ด์ œ ์Šคํ„ฐ๋”” ํ•˜์‹œ๋Š”๋ถ„์ด 2์ฐจ์› ๋ฐฐ์—ด ์—„์ฒญ ์–ด๋ ต๋‹ค๊ณ  ํ•˜์…จ๋Š”๋ฐ,,, ์ผ๋‹จ ์‹ค๋ฒ„๋ถ€ํ„ฐ ๋‹ฌ๊ณ  ์ƒ๊ฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค 

์˜ค๋Š˜ ์†Œ๊ฐœ ๋ฌธ์ œ๋Š” ํŒฐ๋ฆฐ๋“œ๋†ˆ...์•„๋‹ˆ๊ณ  ๋กฌ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ์ž…๋‹ˆ๋‹ค ๐Ÿ˜‚๐Ÿ˜‚

 

๋ฌธ์ œโฃ๏ธ

์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด๋•Œ, ์ด ๋‹จ์–ด๊ฐ€ ํŒฐ๋ฆฐ๋“œ๋กฌ์ธ์ง€ ์•„๋‹Œ์ง€ ํ™•์ธํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

ํŒฐ๋ฆฐ๋“œ๋กฌ์ด๋ž€ ์•ž์œผ๋กœ ์ฝ์„ ๋•Œ์™€ ๊ฑฐ๊พธ๋กœ ์ฝ์„ ๋•Œ ๋˜‘๊ฐ™์€ ๋‹จ์–ด๋ฅผ ๋งํ•œ๋‹ค. 

level, noon์€ ํŒฐ๋ฆฐ๋“œ๋กฌ์ด๊ณ , baekjoon, online, judge๋Š” ํŒฐ๋ฆฐ๋“œ๋กฌ์ด ์•„๋‹ˆ๋‹ค.

 

์ž…๋ ฅโฃ๏ธ

์ฒซ์งธ ์ค„์— ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹จ์–ด์˜ ๊ธธ์ด๋Š” 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉฐ, ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

 

์ถœ๋ ฅโฃ๏ธ

์ฒซ์งธ ์ค„์— ํŒฐ๋ฆฐ๋“œ๋กฌ์ด๋ฉด 1, ์•„๋‹ˆ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

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

level

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

1
 
 

ํŒฐ๋ฆฐ๋“œ๋กฌ์ด ๋ญ๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ๊ณ  ๋ฌธ์ œ ์ด๋ฆ„๋งŒ ๋ณด๊ณ  ๊ฒ๋จน๊ณ  ๋“ค์–ด๊ฐ”๋Š”๋ฐ 

์ƒ๊ฐ๋ณด๋‹ค ํฌ๊ฒŒ ์–ด๋ ค์šด ๋ฌธ์ œ๋Š” ์•„๋‹ˆ๋”๋ผ๊ตฌ์š” ใ…Žใ…Žใ…Ž

 

๊ฑฐ๊พธ๋กœ๊ฐ€ ๋˜‘๊ฐ™์œผ๋ฉด 1์„ ์ถœ๋ ฅ?? ๊ฑฐ๊พธ๋กœ ์Šฌ๋ผ์ด์‹ฑ ํ•˜๋ฉด ๋ ๊ฑฐ ๊ฐ™์€๋ฐ?? ์™œ ์‹ฌํ™”์ง€?? ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค ๐Ÿค”

# ์Šฌ๋ผ์ด์‹ฑ
word = input()
p_word = word[::-1]
if word == p_word:
    print(1)
else:
    print(0)

๊ฒฐ๊ณผ๋Š” ๐Ÿฅ• ํ†ต๊ณผ ์ž…๋‹ˆ๋‹ค ใ…Žใ…Žใ…Ž

์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€์–ด๋ด์•ผ ๋‹ด์ฃผ ์›”๋งํ‰๊ฐ€๋•Œ ๋„์›€ ๋ ๊ฑฐ ๊ฐ™์•„์„œ 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋” ํ’€์–ด๋ดค์Šต๋‹ˆ๋‹ค!!!

 

# reversed ํ•จ์ˆ˜ ์‚ฌ์šฉ
word = list(input())
if word == list(reversed(word)):
    print(1)
else:
    print(0)

๋‘๋ฒˆ์งผ reverse ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค!!! 

์ด๋ฒˆ ๊ฒฐ๊ณผ๋„ ๐Ÿฅ•๐Ÿฅ• ํ†ต๊ณผ ์ž…๋‹ˆ๋‹ค~~~

 

# ์ˆ์ฝ”๋”ฉ ๋„์ „
word = input()
print(1 if word == word[::-1] else 0 )

๋งˆ์ง€๋ง‰์€ ์ˆ์ฝ”๋”ฉ ์ˆœ์œ„๊ถŒ ๋„์ „(?)์„ ์œ„ํ•ด ์‚ผํ•ญ ์กฐ๊ฑด์‹์„ ์จ๋ณด์•˜๋Š”๋ฐ์š”... 

์ˆ์ฝ”๋”ฉ ์ˆœ์œ„๊ถŒ์€ ํƒ๋„ ์—†์—ˆ์ง€๋งŒ ใ…‹ใ…‹ใ…‹ใ…‹ ์•ž์—์žˆ๋Š” ์ฝ”๋“œ๊ธธ์ด ๋ณด๋‹ค๋Š” ๋ฐ˜์œผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค~~~

 

 

๋งˆ์ง€๋ง‰์œผ๋กœ ์‚ผํ•ญ ์กฐ๊ฑด์‹์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์„ค๋ช… ๋“œ๋ฆฌ์ž๋ฉดโฃ๏ธ

์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ผ๊ณ ๋„ ํ•˜๋Š” ์‚ผํ•ญ ์กฐ๊ฑด์‹์€ ํ•œ์ค„์˜ ์ฝ”๋“œ๋กœ ๊ฐ„๋‹จํ•œ if-else ๋…ผ๋ฆฌ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฐ„๊ฒฐํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค <value_if_true> if <condition> else <value_if_false>
์‚ผํ•ญ ์—ฐ์‚ฐ์ž ์˜ˆ์ œ
x = 10
result = "Even" if x % 2 == 0 else "Odd"
print(result)  # Output: "Even"
728x90
๋ฐ˜์‘ํ˜•

+ Recent posts