일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 투포인터
- 공변성
- webpack
- 태그된 유니온
- SSR
- 리터럴 타입
- 결정 알고리즘
- async/await
- app router
- ESlint
- autosize
- 호이스팅
- Jest
- 반공변성
- Cypress
- dfs
- Promise
- recoil
- CORS
- 무한 스크롤
- CI/CD
- tailwind
- useAppDispatch
- 이분 검색
- RTK Query
- map
- 타입 좁히기
- 인터섹션
- React
- TS
Archives
- Today
- Total
짧은코딩
팀 결성 본문
반응형
해결법
문제를 보고서 이 문제는 경로 압축으로 루트 노드를 찾는 함수를 팀 합치기 연산으로 사용한다. 그리고 루트 노드가 같은지 판단하는 함수를 같은 팀 여부 확인으로 풀었다.
코드(한번에 맞음)
n, m = map(int, input().split())
def find_parent(parent, x):
if parent[x] != x:
find_parent(parent, parent[x])
return parent[x]
def union(parent, a, b):
a = find_parent(parent, a)
b = find_parent(parent, b)
if a < b:
parent[b] = a
else:
parent[a] = b
parent = [i for i in range(n+1)]
answer = []
for i in range(m):
a, b, c = map(int, input().split())
if a == 0:
union(parent, b, c)
else:
if find_parent(parent, b) == find_parent(parent, c):
answer.append("Yes")
else:
answer.append("NO")
for i in answer:
print(i)
앞에서 find_parent 함수와 union 함수가 여러 번 나와서 그런지 이 문제를 풀 때 바로 구현할 수 있었다.
반응형
'코딩 테스트(Python) > 이것이 취업을 위한 코딩 테스트다' 카테고리의 다른 글
커리큘럼 (0) | 2022.07.17 |
---|---|
1647 도시 분할 계획 (0) | 2022.07.16 |
위상 정렬(Topology Sort) (0) | 2022.07.10 |
신장 트리, 크루스칼 알고리즘 (0) | 2022.07.09 |
그래프 이론, 서로소 집합 (0) | 2022.07.06 |
Comments