*문제 출처는 프로그래머스에 있습니다.
문제 제목: 네트워크 (3단계)
문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/43162
문제 설명
나의 풀이
def DFS(x, visited, computers, n):
visited[x] = True
for i in range(n):
if not visited[i] and computers[x][i] == 1:
DFS(i, visited, computers, n)
def solution(n, computers):
answer = 0
visit = [False] * n
for i in range(n):
if not visit[i]:
DFS(i, visit, computers, n)
answer += 1
return answer
이렇게 연결된걸 한 번 쭉 따라가고 나서 answer += 1해주면 네트워크의 개수를 셀 수 있다.
※ 알아야 할 것
파이썬을 사용하면서 알아야할 내용이 있다. C++에서는 함수에 인자로 전달되는 것은 값에 의한 호출(Call by Value)가 기본적으로 적용되고, 포인터를 사용하면 참조에 의한 호출(Call by Reference)가 작동된다.
하지만 파이썬은 다르다.
파이썬에서 함수에 인자로 전달되는 객체의 동작은 객체의 타입과 불변성에 따라 달라진다.
- 변경 불가능한 객체(immutable objects)인 경우 (예: 정수, 실수, 문자열 등)
- 함수에 인자로 전달될 때는 값에 의한 호출(Call by Value)이 발생한다. 이는 함수 내에서 매개변수의 값을 변경해도 호출한 쪽에는 영향을 주지 않는다. 즉, 함수 내에서 변경한 값은 함수 내에서만 적용된다.
- 변경 가능한 객체(mutable objects)인 경우 (예: 리스트, 딕셔너리, 집합 등)
- 함수에 인자로 전달될 때는 참조에 의한 호출(Call by Reference)이 발생한다. 이는 함수 내에서 매개변수를 수정하면 호출한 쪽에도 영향을 준다. 즉, 함수 내에서 변경한 값은 호출한 쪽에서도 적용된다.
'코딩테스트(프로그래머스 & 백준) > 프로그래머스-Python' 카테고리의 다른 글
Programmers / 뒤에 있는 큰 수 찾기 / Python (0) | 2024.03.27 |
---|---|
Programmers / 더 맵게 / Python (0) | 2024.03.27 |
Programmers / 게임 맵 최단거리 / Python (0) | 2024.03.25 |
Programmers / 모음사전 / Python (0) | 2024.03.25 |
Programmers / [3차] 압축 / Python (1) | 2024.03.22 |