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

1) ํŒŒ์ด์ฌ ์‹คํ–‰ ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ

 

1. ๋จผ์ € ์ฝ”๋“œ๋ฅผ gpt์— ์ž…๋ ฅํ•˜๋“ , ์ž์‹ ์ด ์ฐพ์•„๋ณด๋“ , ๋งŒ๋“ค๋“ ํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์™„์„ฑํ•˜๊ณ  ์‹คํ–‰ ์‹œํ‚ต๋‹ˆ๋‹ค. (์ฝ”๋“œ ์‹คํ–‰๋˜์–ด์•ผ ๊ฐ€๋Šฅ)

import tkinter as tk
import datetime


class CountdownApp:
    def __init__(self, master):
        self.master = master
        self.master.title("์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ํ•„๊ธฐ ํ•ฉ๊ฒฉ ๊ฐ€๋ณด์ž๊ณ !")
        self.master.attributes("-fullscreen", True)
        self.end_date = datetime.datetime(2023, 5, 13)
        self.remaining_time_str = tk.StringVar(value=self.get_remaining_time())
        self.remaining_time_label = tk.Label(
            self.master,
            textvariable=self.remaining_time_str,
            font=("Arial", 96),
            fg="blue",
            bg="gray",
        )
        self.remaining_time_label.pack(pady=20)

        # Create image label
        self.image_label = tk.Label(self.master)
        self.image_label.pack(pady=10)

        self.message_label = tk.Label(
            self.master,
            text="์กฐ์ˆ˜ํ˜„ ์•„์ž์•„์ž ํ™”์ดํŒ…!",
            font=("Arial", 48),
            fg="white",
            bg="green",
        )
        self.message_label.pack(pady=10)

        # Load image and set it to the image label
        self.kakao_image = tk.PhotoImage(file="shsu.png")
        self.image_label.configure(image=self.kakao_image)

        self.countdown()


    def get_remaining_time(self):
        remaining = self.end_date - datetime.datetime.now()
        days, seconds = remaining.days, remaining.seconds
        hours = seconds // 3600
        minutes = (seconds % 3600) // 60
        seconds = seconds % 60
        remaining_time = f"{days:02}:{hours:02}:{minutes:02}:{seconds:02}"
        return remaining_time

    def countdown(self):
        self.remaining_time_str.set(self.get_remaining_time())
        if datetime.datetime.now() >= self.end_date:
            self.remaining_time_str.set("Time's up!")
            return
        self.master.after(1000, self.countdown)


if __name__ == "__main__":
    root = tk.Tk()
    app = CountdownApp(root)
    root.mainloop()
 

๊ฒฐ๊ณผ๋Š” ์ด๋ ‡๊ฒŒ ๋‚˜์˜ค๊ตฌ์—ฌ~~ ์ด๊ฑธ ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!! (์ •์ฒ˜๊ธฐ ์ค€๋น„ํ•˜์‹œ๋Š”๋ถ„๋“ค ํŒŒ์ด๋ง)

 

2. ํ„ฐ๋ฏธ๋„์—  pip install pyinstaller์„ ์ž…๋ ฅํ•ด์ค๋‹ˆ๋‹ค

 

3. ๊ทธ ํ›„์— pyinstaller -w ํŒŒ์ผ๋ช…(countdown_gosim.py)์„ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•ด์ค๋‹ˆ๋‹ค

 

4. ๋งˆ์ง€๋ง‰์œผ๋กœ dist ์•ˆ์— ์žˆ๋Š” ์ฑ… ๋ชจ์–‘ ์‹คํ–‰ ํŒŒ์ผ์„ ์ฐพ์•„์„œ ์—ด์–ด์ฃผ๋ฉด ํŒŒ์ด์ฌ์ด ์—†์–ด๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์‹คํ–‰ ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ ๋!!!

 

 

2)  chat gpt๋ฅผ vscode ์•ˆ์œผ๋กœ ๋ฐ๋ฆฌ๊ณ  ์˜ค๊ธฐ๐Ÿ‘

 

(421) ChatGPT๋ฅผ VSCode์•ˆ์œผ๋กœ ๋ฐ๋ฆฌ๊ณ  ์˜ค์ž | ์ธ๊ณต์ง€๋Šฅ ์ฝ”๋”ฉ - YouTube

์ด ์˜์ƒ์„ ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค ใ…Žใ…Žใ…Ž ๋˜‘๋˜‘ํ•œ gpt์”Œ๐Ÿ˜

 https://platform.openai.com/account/api-keys

 

OpenAI API

An API for accessing new AI models developed by OpenAI

platform.openai.com

1. ์š” ๋งํฌ ๋“ค์–ด๊ฐ€์…”์„œ ํ‚ค๋ฅผ ๋งŒ๋“ค๊ณ  ๋ณต์‚ฌ๋ฅผ ํ•œํ›„์—

2. ์„ค์ •(Setting) ๋“ค์–ด๊ฐ€์…”์„œ Goto Location: Alternative Definition Command ๋ฐ‘์— ๋ณต์‚ฌํ•œ ํ‚ค๋ฅผ ๋ณต์‚ฌ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•˜๋ฉด ๋!!3.

 

++chat gpt๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ๋ฒ•์€ ์ด๋Ÿฌ์ด๋Ÿฌํ•ฉ๋‹ˆ๋‹น

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

tkinter : GUI์— ๋Œ€ํ•œ ํ‘œ์ค€ Python ์ธํ„ฐํŽ˜์ด์Šค์ด๋ฉฐ Window ์ฐฝ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"Tkinter ์‹คํ–‰์‹œํ‚ค๊ธฐ"

๋”๋ณด๊ธฐ

1. python์— ๋“ค์–ด๊ฐ€์„œ ํ„ฐ๋ฏธ๋„์— pip install tk๋ฅผ ์ ์–ด tkinter์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค

2. ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ํ•„์š”ํ•˜๋ฉด upgrade ์ค„์„ ๋ฐ‘์— ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

3. ์ฝ”๋”ฉ ๊ณ ์šฐ

"์œˆ๋„์šฐ ์ฐฝ ์ƒ์„ฑํ•˜๊ธฐ"

๋”๋ณด๊ธฐ

import tkinter : ์ƒ๋‹จ์— import tkinter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GUI ๋ชจ๋“ˆ์„ ํฌํ•ฉ์‹œํ‚ต๋‹ˆ๋‹ค. tkinter ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์€ tkinter."๋ฅผ ์ด์šฉํ•˜                               ์—ฌ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

window=tkinter.Tk() : ์œˆ๋„์šฐ ์ด๋ฆ„=tkinter.TK()๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ€์žฅ ์ƒ์œ„ ๋ ˆ๋ฒจ์˜ ์œˆ๋„์šฐ ์ฐฝ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

window.mainloop() : ์œˆ๋„์šฐ ์ด๋ฆ„.mainloop()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œˆ๋„์šฐ ๋ฆฌ๋ฆ„์˜ ์œˆ๋„์šฐ ์ฐฝ์„ ์œˆ๋„์šฐ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ๊นŒ์ง€ ์‹คํ–‰์‹œํ‚ต๋‹ˆ๋‹ค.

                                     ์ƒ์„ฑ ๊ตฌ๋ฌธ๊ณผ ๋ฐ˜๋ณต ๊ตฌ๋ฌธ ์ƒ์— ์œ„์ ฏ์„ ์ƒ์„œ์•„๊ณ  ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

tkinter.TK()๋ฅผ ์ ์šฉํ•  ๊ฒฝ์šฐ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์œˆ๋„์šฐ ์ฐฝ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

"Window ์ฐฝ ์„ค์ •"

๋”๋ณด๊ธฐ

import tkinter

 

window=tkinter.Tk()

 

window.title("CHO SU HYEON") : ์œˆ๋„์šฐ์ด๋ฆ„.title("์ œ๋ชฉ")์„ ์ด์šฉํ•˜์—ฌ ์œˆ๋„์šฐ ์ฐฝ์˜ ์ œ๋ชฉ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

window.geometry("640x400+100+100": ์œˆ๋„์šฐ์ด๋ฆ„.geometry("๋„ˆ๋น„x๋†’์ด+x์ขŒํ‘œ+y์ขŒํ‘œ")๋ฅผ ์ด์šฉํ•˜์—ฌ ์œˆ๋„์šฐ ์ฐฝ

                                                                      ์˜ ๋„ˆ๋น„์™€ ๋†’์ด, ์ดˆ๊ธฐ ํ™”๋ฉด ์œ„์น˜์˜ x์ขŒํ‘œ์™€ y์ขŒํ‘œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

window.resizable(False, False) : ์œˆ๋„์šฐ์ด๋ฆ„.resizeable(์ƒํ•˜, ์ขŒ์šฐ)๋ฅผ ์ด์šฉํ•˜์—ฌ ์œˆ๋„์šฐ ์ฐฝ์˜ ์ฐฝ ํฌ๊ธฐ ์กฐ์ ˆ ๊ฐ€๋Šฅ ์—ฌ                                                          ๋ถ€๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. True๋กœ ์„ค์ •ํ•  ๊ฒฝ์šฐ ์œˆ๋„์šฐ ์ฐฝ์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ                                                            ์Šต๋‹ˆ๋‹ค.

 

window.mainloop() 

 * Tip : resizeable() ์„ ์ ์šฉํ•  ๋•Œ, True=1, False=0์„ ์˜๋ฏธํ•˜์—ฌ ์ƒ์ˆ˜๋ฅผ ์ž…๋ ฅํ•ด๋„ ์ ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์œˆ๋„์šฐ ์ฐฝ์˜ ์ด๋ฆ„์ด CHO SU HYEON๋กœ ์„ค์ •๋˜์—ˆ์œผ๋ฉฐ ํฌ๊ธฐ์™€ ์ดˆ๊ธฐ ํ™”๋ฉด ์œ„์น˜, ์œˆ๋„์šฐ ํŒก์˜ ํฌ๊ธฐ ์กฐ์ ˆ ๋ถˆ๊ฐ€๋กœ ์„ค์ •๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

"Widget ๋ฐฐ์น˜"

๋”๋ณด๊ธฐ

import tkinter

 

window=tkinter.Tk()

 

window.title("CHO SU HYEON")

window.geometry("640x400+100+100")

window.resizable(False, False)

 

label=tkinter.Label(window, text="์•ˆ๋…•ํ•˜์„ธ์š”.") ์œ„์ ฏ์ด๋ฆ„=tkinter.Label(์œˆ๋„์šฐ ์ฐฝ, text="๋‚ด์šฉ")์„ ์‚ฌ์šฉํ•˜์—ฌ ์œˆ๋„ ์šฐ ์ฐฝ์— Label ์œ„์ ฏ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. / ์œ„์ ฏ์ด๋ฆ„.pacl()์„ ์‚ฌ์šฉํ•˜์—ฌ ์œ„์ ฏ์„ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

label.pack() 

 

window.mainloop()

์†์„ฑ์„ ์„ค์ •ํ•˜์ง€ ์•Š์•„ ๊ธฐ๋ณธ ์†์„ฑ์œผ๋กœ ์„ค์ •๋˜์–ด ๊ฐ€์žฅ ์ตœ์ƒ๋‹จ์— ๋ผ๋ฒจ์ด ๋ฐฐ์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

*์˜ค๋Š˜์˜ ์—๋Ÿฌ

ํŒŒ์ผ ์ด๋ฆ„์„ tkinter๋กœ ์„ค์ •ํ•˜์—ฌ attribute ์—๋Ÿฌ๊ฐ€ ์ž‘๋™ํ•˜์—ฌ ๋””๋ฒ„๊น…์ด ๋˜์ง€ ์•Š์•˜๋‹ค.

๋‹ค์‹œ ์ž‘๋™ํ•˜๊ณ  ๋‚˜๊ฐ”๋‹ค ๋“ค์–ด์™”๋Š”๋ฐ๋„ ์ž‘๋™ ์•ˆ๋˜์–ด ํŒŒ์ผ์˜ ์ œ๋ชฉ์ด ์˜ค๋ฅ˜์˜ ์ฃผ ์›์ธ์ด๋ผ๋Š” ๋ง์„ ๋งŽ์ด ๋“ค์–ด์„œ 

ํŒŒ์ผ ์ด๋ฆ„์„ tkinter2๋กœ ๋ฐ”๊พธ์–ด ๋‹ค์‹œ ์‹คํ–‰ํ•ด๋ณด๋‹ˆ ๋‹คํ–‰ํžˆ ์‹คํ–‰๋˜์—ˆ๋‹ค!!

 

 

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

1)  2~100๊นŒ์ง€์˜ ์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ 

# 2~100 ์‚ฌ์ด์˜ ๋ชจ๋“  ์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ
num = 2
count = 0  # ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ์–ด์ค„ ๋ณ€์ˆ˜
while num <= 100:
    i = 2  # 2 ~ num ๊นŒ์ง€ ์ฆ๊ฐ€ํ•  ๋ณ€์ˆ˜
    while num % i:  # ๋‚˜๋ˆ„์–ด์งˆ ๋–„๊นŒ์ง€ ๋ฐ˜๋ณต
        i += 1      # 1์ฆ๊ฐ€

    if i == num:  # ๋‚˜๋ˆ„์–ด์ง„ ์ˆ˜๊ฐ€ ์ž๊ธฐ ์ž์‹ ์ด๋ฉด ์†Œ์ˆ˜
        print('{0:5}'.format(num), end='')
        count += 1
        if not count % 10:  # ๊ฐœ์ˆ˜๊ฐ€ 10์˜ ๋ฐฐ์ˆ˜๋ฉด ์ค„๋ฐ”๊ฟˆ
            print()
    num += 1  # 100๊นŒ์ง€ ์ฆ๊ฐ€
 
-> vscode์— ์ด๋Œ€๋กœ ๋ˆ„๋ฅด๊ณ  ์‹คํ–‰ํ•˜๋ฉด (=F5)
=>
 2    3    5    7   11   13   17   19   23   29
   31   37   41   43   47   53   59   61   67   71
   73   79   83   89   97
PS C:\Users\user\Desktop\chosuhyeon\school class\python\GOGODAN>
 
์ด๋ ‡๊ฒŒ ๋‚˜์˜ต๋‹ˆ๋‹ค~~~ 
 
* ๊ฐ™์€ ์—ด๋ผ๋ฆฌ ์ •ํ™•ํ•˜๊ฒŒ ์ ์–ด์•ผ ์ฝ”๋“œ ์‹คํ–‰๋จ(ํด๋ก  ์ฝ”๋”ฉํ•˜๋‹ค๊ฐ€ ์ž์ฃผ ์‹ค์ˆ˜ํ•˜๋Š” ์š”์ธ ์ค‘ ํ•˜๋‚˜, ์ฒ˜์Œ์— ์ดํ•ดํ•ด์„œ ํ˜ผ์ž ์ ์œผ๋ ค ํ•˜๋‹ค๊ฐ€ ๊ณ„์† ์˜ค๋ฅ˜๋– ์„œ ๋ณด๋‹ˆ๊นŒ ์—ด์ด ์กฐ๊ธˆ ๋‹ค๋ฅด๊ฒŒ ๋˜์–ด์žˆ์—ˆ์Œ)
* # : ์ฃผ์„ (์ฝ”๋”ฉ์— ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š” ๋‚ด์šฉ, ์„ค๋ช…์„ ์œ„ํ•ด ๋“ค์–ด๊ฐ)
 
 

2) 2-9๋‹จ๊นŒ์ง€์˜ ๊ตฌ๊ตฌ๋‹จ ๋งŒ๋“ค๊ธฐ

print("๊ตฌ๊ตฌ๋‹จ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.\n")
for x in range(2,10):
    print("------[" + str(x) + "๋‹จ]------")
    for y in range(1,10):
        print(x, "x", y, "=", x*y)

-> vscode์— ์ด๋Œ€๋กœ ๋ˆ„๋ฅด๊ณ  ์‹คํ–‰ํ•˜๋ฉด (=F5)

=>


------[2๋‹จ]------
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
------[3๋‹จ]------
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
------[4๋‹จ]------
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
------[5๋‹จ]------
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
------[6๋‹จ]------
6 x 1 = 6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30
6 x 6 = 36
6 x 7 = 42
6 x 8 = 48
6 x 9 = 54
------[7๋‹จ]------
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
------[8๋‹จ]------
8 x 1 = 8
8 x 2 = 16
8 x 3 = 24
8 x 4 = 32
8 x 5 = 40
8 x 6 = 48
8 x 7 = 56
8 x 8 = 64
8 x 9 = 72
------[9๋‹จ]------
9 x 1 = 9
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81

* ํ•œ์ค„์”ฉ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์œผ๋ฉด for y in range(1,10):์ด ์‹์— F9 ๋ˆ„๋ฅธ๋‹ค์Œ์— ์‹คํ–‰(F5)ํ•œ ํ›„, F10์„ ๊ณ„์†ํ•ด์„œ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด

๋นจ๊ฐ„ ์ ์ด ์ƒ๊ธฐ๋ฉด์„œ 4~5๋ฒˆ์„ ์™”๋‹ค ๊ฐ”๋‹คํ•˜๋ฉด์„œ

2 x 1 = 2
2 x 2 = 4
2 x 3 = 6

์ฃผ๋ฅด๋ฅต ๋‚˜์˜ต๋‹ˆ๋‹ค~~~

 

ํŒŒ์ด์ฌ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์‹๋„ ์—†์ด ๋ฐ”๋กœ ์ฝ”๋”ฉ์„ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ๊นŒ ์ดํ•ดํ•œ๋‹ค๊ณ  ์–ด๋ ค์›€์ด ๋งŽ์•˜๋Š”๋ฐ ๋ฌด์ž‘์ • ํ•œ๋ฒˆ ์‹œ๋„ํ•ด๋ณด๋Š” ๊ฒƒ๋„ ์žฌ๋ฏธ๋Š” ์žˆ์—ˆ๋„ค์š”. ์–ธ์  ๊ฐ€ ๊ธฐ์ดˆ์ ์ธ ์ง€์‹๋“ค์„ ๋ฐฐ์›Œ์„œ ์ฃผ์ œ๋ฅผ ๋˜์ง€๋ฉด ๋ฐ”๋กœ ์ฝ”๋”ฉ ํ•ด๋ณด๋Š” ์‹ค๋ ฅ ๊ฐ€์ง€๊ธธ ๋ฐ”๋ผ๋ฉด์„œ ์˜ค๋Š˜์€ ์•ˆ๋…• :)

728x90
๋ฐ˜์‘ํ˜•

+ Recent posts