3182번: 한동이는 공부가 하기 싫어! (acmicpc.net)
3182번: 한동이는 공부가 하기 싫어!
H-ALGO 회원인 한동이는 공부하는것을 좋아하지 않는다. 하지만 약삭빠르게도 한동이는 공부도 하지 않으면서 어려운 시험을 통과하고 싶어한다. 그러던 와중 어느 날, 한동이의 동기가 한동이에
www.acmicpc.net
안녕하세요
기획부 부장 김유진입니다
바보똥꼬라 그런지
문제 진짜 똥구녕같이 어렵네요
그래서 구글링했슴니다
물론,
이해는 했습니다
def dfs(node, cnt):
check[node] = 1
n = graph[node][0]
if check[n] == 0:
cnt = dfs(n, cnt+1)
return cnt
n = int(input())
graph = [[] for _ in range(n+1)]
ans = [0]*(n+1)
for i in range(1, n+1):
v = int(input())
graph[i].append(v)
for i in range(1, n+1):
check = [0]*(n+1)
ans[i] = dfs(i, 1)
print(ans.index(max(ans)))
제눈에만 그래보일지도 모르지만
딱봐도 남이 쓴 코드 베껴온거 같네용
만약 똑같은 생각을 하셨다면
당신은 김유진 팬 + 추리왕 임니당
check의 역할은 들렸는지 확인해주는 아이인데
함수 보시면 일단 들렸으니까 1 더해서 들렸다는 거 확인시켜주고
그 다음 선배로 넘어가기 위해 n에 다음 선배가 몇번인지 대입 시켜줍니당
저 if문이 의미하는 건
0이 아니라 1이면 이미 들렸다는 거니까 == 순환된다는 거니까
그냥 cnt return 해줍니다
요런식으로 누구한테 먼저 물어봐야 제일 많은 선배를 접할 수 있는지
막 요래조래 하는 건데
이거 어케 생각해내죵??
휴
이거 푸신 분들
이 기획부 부장이 칭찬도장 드립니당~
오늘의 노래 임니당
디로~
'BOJ' 카테고리의 다른 글
[python] 백준 1449번 - 수리공 (2) | 2023.02.01 |
---|---|
[python] 백준 2312번 - 수 복원하기 (1) | 2023.01.31 |
[python] 백준 20309번 - 트리플소트 (3) | 2023.01.30 |
[python] 백준 8911번 - 거북이 (3) | 2023.01.29 |
[python] 백준 2870번 - 수학숙제 (4) | 2023.01.29 |
댓글