여러 개의 Docker 컨테이너들을 하나의 서비스로 정의하고 구성해 하나의 묶음으로 관리할 수 있는 것이다.
2. 도커 엔진만 설치해도 될까?
단일 컨테이너를 실행하거나 간단한 테스트만 할 때는 도커 엔진만 설치해도 된다. 예를 들어 백엔드 Springboot 컨테이너 하나 실행해서 서버 테스트만 해볼 때는 도커 컴포즈를 굳이 설치하지 않아도 된다.
3. 도커 컴포즈는 왜 설치해야 할까?
여러 컨테이너를 함께 실행하고, 이를 쉽게 관리하려는 경우에 도커 컴포즈를 설치해야 한다. 예를 들어, 웹 서버(Nginx), 데이터베이스(MySQL), 백엔드 서버(Spring Boot)를 한 번에 관리하고자 할 때는 도커 컴포즈를 설치하여 여러 개의 도커 컨테이너를 하나의 묶음으로 관리할 수 있다.
from collections import deque
# 1. 입력받기
n=int(input()) # 컴퓨터 개수
v=int(input()) # 연결선 개수
graph = [[] for i in range(n+1)] # 그래프 초기화
for i in range(v): # 그래프 생성
a,b=map(int,input().split())
graph[a]+=[b] # a에 b 연결
graph[b]+=[a] # b에 a 연결 -> 양방향
#print(graph)
# 2. 노드 탐색 (bfs / 큐)
visited = [0] * (n+1) # 방문 여부 체크
visited[1]=1 # 1번 컴퓨터부터 시작이니 방문 표시
Q=deque([1])
while Q:
c=Q.popleft() # 왼쪽에서 빼기
for nx in graph[c]:
if visited[nx]==0:
Q.append(nx) #오른쪽에 추가
visited[nx]=1
print(sum(visited)-1)
풀이 (dfs)
# 1. 입력받기
n = int(input())
v = int(input())
graph = [[] for i in range(n+1)] # 그래프 초기화
for i in range(v):
a,b = map(int, input().split())
graph[a] += [b]
graph[b] += [a]
#print(graph)
visited = [0] * (n+1)
# 2. dfs 함수 구현 (재귀)
def dfs(v):
visited[v]=1
for nx in graph[v]:
if visited[nx]==0:
dfs(nx)
#print(f"v={v} | nx={nx} | {visited}")
# 3. 노드 탐색 (dfs / 재귀)
dfs(1)
#print(visited)
print(sum(visited) -1)
1. 리스트 0으로 초기화 : answer = [[0 for i in range(n)] for j in range(n)]
정답코드
def solution(n):
answer = [[]]
answer = [[0 for i in range(n)] for j in range(n)]
val = 0
#우 하 좌 상
d = 0
dx = [0, 1, 0, -1] #행
dy = [1, 0, -1, 0] #열
#현재 좌표
cur = [0,0]
while val < n*n:
#현재좌표 값 채우기
val += 1
answer[cur[0]][cur[1]] = val
#다음 좌표
x = cur[0] + dx[d]
y = cur[1] + dy[d]
next = [x, y]
#print(f"next={next}")
#다음좌표값이 0보다 크면 방향 바꾸기
#다음좌표가 맨끝이면 방향바꾸기
if (x>n-1 or x<0 or y>n-1 or y<0) or answer[next[0]][next[1]] > 0:
if d < 3:
d += 1
else:
d = 0
#print(f"d={d}")
#현재좌표를 다음 좌표로 바꾸기
x = cur[0] + dx[d]
y = cur[1] + dy[d]
next = [x, y]
cur = next
#print(answer)
return answer