일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- activation_function
- 파이썬
- 5기
- 다 쓰고보니깐
- root_directory
- 또 2시네
- astreisk
- 선택정렬
- BOJ
- 난 분명히 1시에 잘 생각이었는데
- TDB
- 알고리즘
- 2시야
- comprehesion
- 멋쟁이사자처럼부트캠프
- 다 쓰고 보니깐 1시 반이야
- 또 2시야....
- 23883
- 자동_형변환
- 멋사
- O(logN)
- 정렬
- 멋쟁이사자처러후기
- jupyter_notebook
- 백준
- Python
- 몰라 뭐가 너무 많아졌어
- 멋쟁이사자처럼후기
- 데이터분석
- ELU
Archives
- Today
- Total
유사개발자 샤이와 무지
팀 결성 [theory of graph] #이것이 코딩테스트다 본문
[문제] 팀 결성: 문제 설명
학교에서 학생들에게 0번부터 N번까지의 번호를 부여했다.처음에는 모든 학생이 서로 다른 팀으로 구분되어, 총 N + 1개의 팀이 존재한다.이때 선생님은 '팀 합치기' 연산과 '같은 팀 여부 확인' 연산을 사용할 수 있다.
1. '팀 합치기' 연산은 두 팀을 합치는 연산이다.
2. ‘같은 팀 여부 확인' 연산은 특정한 두 학생이 같은 팀에 속하는지를 확인하는 연산이다.
선생님이 M개의 연산을 수행할 수 있을 때,'같은 팀 여부 확인' 연산에 대한 연산 결과를 출력하는 프로그램을 작성하시오.
난이도: ●●○| 풀이시간 20m | 시간제한 2초 | 메모리 128mb
<input case>
첫째 줄에 N, M이 주어진다. M은 입력으로 주어지는 연산의 개수이다. (1 <= N, M <= 100,000)
다음 M개의 줄에는 각각의 연산이 주어진다.'팀 합치기' 연산은 0 a b 형태로 주어진다.이는 a번 학생이 속한 팀과 b번 학생이 속한 팀을 합친다는 의미이다.
'같은 팀 여부 확인' 연산은 1 a b 형태로 주어진다.이는 a번 학생과 b번 학생이 같은 팀에 속해 있는지를 확인하는 연산이다.
a와 b는 N 이하의 양의 정수이다
<Output case>
'같은 팀 여부 확인' 연산에 대하여 한 줄에 하나씩 YES 혹은 NO로 결과를 출력한다.
input example | Output example |
7 8 0 1 3 1 1 7 0 7 6 1 7 1 0 3 7 0 4 2 0 1 1 1 1 1 |
NO NO YES |
<Idea>
Q. 간단한 문제네 그냥 연산 구현하라는데 이문제는 구현파트에 들어가야하지 않았을까?
A. 그러게 ㅋㅋㅋㅋ
def find_team(parent,x): #결국 본인 트리의 최상단을 찾는 함수
if parent[x] != x: find_team(parent, parent[x])
return parent[x]
def union_team(parent, a, b): #2개의 트리를 연결시키는 함수
a= find_team(parent,a)
b= find_team(parent,b)
if a<b: parent[b]=a
else: parent[a]=b
n,m = map(int, input().split())
parent=[0]* (n+1)
for i in range(n+1): parent[i]=i
for _ in range(m):
x, a, b=map(int, input().split())
if x==0: union_team(parent, a, b)
else:
if find_team(parent, a) == find_team(parent, b): print("YES")
else: print("NO")
'WIL > algorithm' 카테고리의 다른 글
커리큘럼 [theory of graph] #이것이 코딩테스트다 (2) | 2023.05.16 |
---|---|
도시 분할 계획 [theory of graph] #이것이 코딩테스트다 #백준 1647 (0) | 2023.05.16 |
효율적인 화폐 구성 [dynamic Programming] #이것이 코딩테스트다 (1) | 2023.04.25 |
바닥공사 [dynamic Programming] #이것이 코딩테스트다 (0) | 2023.04.25 |
개미 전사 [dynamic Programming] #이것이 코딩테스트다 (0) | 2023.04.25 |
Comments