Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 팀 분석
- 데이터분석
- Brigthics
- 개인 의료비 예측
- Brightics
- 삼성 SDS Brigthics
- 노코드AI
- 직원 이직률
- 혼공
- Brigthics를 이용한 분석
- 삼성SDS Brigthics
- 혼공학습단
- 삼성SDS
- 추천시스템
- 포스코 아카데미
- 캐글
- 모델링
- 데이터 분석
- 삼성 SDS
- 혼공머신러닝딥러닝
- 브라이틱스 서포터즈
- 영상제작기
- 브라이틱스
- 혼공머신
- 삼성SDS Brightics
- 포스코 청년
- Brightics Studio
- Brigthics Studio
- Brightics를 이용한 분석
- 직원 이직여부
Archives
- Today
- Total
데이터사이언스 기록기📚
[백준/Python] 25195번(DFS)_Yes or yes 본문
📌문제 유형
DFS (골드 Lv.4)
📌문제
📌나의 문제풀이
- 24%에서 시간 초과
## 입력 ##
import sys
sys.setrecursionlimit(10**6)
n,m = map(int,input().split())
maps = [[] for _ in range(n+1)]
for _ in range(m):
u,v = map(int,input().split())
maps[u].append(v)
s = int(input())
fans = list(map(int,input().split()))
## 출력 ##
def dfs(x,visited):
global flag
if x in fans:
return
# leaf node인 경우
if maps[x] == []:
flag = 1
return
for next in maps[x]:
if maps[next] != []:
dfs(next,visited+[next])
elif maps[next] == [] and next not in fans:
flag = 1
return
visited = []
visited.append(1)
flag = 0
dfs(1,visited)
if flag == 1:
print('yes')
else:
print('Yes')
📌다른사람의 문제풀이
- Java 문제풀이 Python으로 변경해서 풀이 완료
import sys
sys.setrecursionlimit(10**6)
n, m = map(int,input().split())
maps = [[] for _ in range(n+1)]
for _ in range(m):
u,v = map(int,input().split())
maps[u].append(v)
S = int(input())
fans = list(map(int,input().split()))
def dfs(start):
global tour
if start in fans:
return
# 시작 노드에서 간선이 없을 때
if maps[start] == []:
tour = True
return
for i in maps[start]:
if maps[i] != []:
dfs(i)
elif maps[i] == [] and i not in fans:
tour = True
tour = False
dfs(1)
if tour == True:
print('yes') # 팬클럽 만나지 않고 이동 가능
else:
print('Yes')
📌리뷰
- visited를 dfs 함수에 넣는것이 시간초과의 요소 -> True, False로 판단해서 시간복잡도 줄이기
- dfs에서 return은 함수가 끝나는 것이 아닌, leaf node 위로 갈 수 있게 하는 것
- 다른사람의 풀이에서 maps[i] != [] 와 maps[i] == []로 구분되어 있음에 주의
728x90
'Coding Test > 백준(Python)' 카테고리의 다른 글
[백준/Python] 14500번(구현)_테트로미노 (0) | 2024.02.15 |
---|---|
[백준/Python] 5430번(구현)_AC (0) | 2024.02.10 |
[백준/Python] 2109번(그리디)_순회강연 (0) | 2023.11.13 |
[백준/Python] 2141번(그리디)_우체국 (0) | 2023.10.10 |
[백준/Python] 10271번(완탐)_고층 건물 (0) | 2023.10.09 |
Comments