알고리즘/programmers
20210217_코테공부
jungeun960
2021. 2. 17. 18:05
프로그래머스 네트워크 (문제)
- Point. 덩어리 구하기 -> BFS 사용
def solution(n, computers):
answer = 0 # 네트워크의 개수 저장
q = [] # 탐색을 위한 큐
visited = [0]*n # 방문한 노드 체크
while 0 in visited: #모든값이 방문표시가 될때까지 반복
x = visited.index(0)
q.append(x) # 첫 노드 인덱스 추가
visited[x] = 1 # 첫 노드 방문 표시
while q:
node = q.pop(0) # 큐 앞에서부터 노드 꺼내기
visited[node] = 1
for i in range(n): #인접 노드 방문
if visited[i] == 0 and computers[node][i] == 1:
# 인접노드이고 방문한적 없는 경우
q.append(i) # 큐에 추가
visited[i] = 1 #방문했음을 표시
answer += 1 # 한 네트워크 탐색을 마치면 개수 증가
return answer
프로그래머스 - 두 개 뽑아서 더하기 (level 1)
def solution(numbers):
answer = []
for i in range(len(numbers)):
for j in range(i+1,len(numbers)):
answer.append(numbers[i]+numbers[j])
sort_ans = sorted(answer)
return sorted(list(set(answer)))
반응형