이숭간 공부기록
[코딜리티] 파이썬 _ FrogRiverOne 본문
728x90
https://app.codility.com/programmers/lessons/4-counting_elements/frog_river_one/
문제번역 :
개구리가 한편에서 반대로 건너가기위해서는 나뭇잎을 밟아가야함 🐸
나뭇잎이 1초에 하나씩 떨어지는데 전체가(경로전체) 나뭇잎으로 덮이는 가장 빠른 시점을 리턴하는것
문제풀이 :
- 방문처리 배열을 두고 방문처리가 모두 되는 첫 시점 (cnt활용)을 리턴하도록한다.
- # X를 순회하면서 해당위치에 나뭇잎이 떨어졋다면 해당위치를 방문처리한다.
# 모든 위치가 방문처리되었는지 매 라운드마다 확인하고 모두 방문되었으면 그 시간을 리턴한다.
# 만약 배열순회가 모두 끝났는데 아직 전체가 방문처리되지 않았다면 -1을 리턴한다.
정답코드 :
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(X, A):
# write your code in Python 3.6
# X를 순회하면서 해당위치에 나뭇잎이 떨어졋다면 해당위치를 방문처리한다.
# 모든 위치가 방문처리되었는지 매 라운드마다 확인하고 모두 방문되었으면 그 시간을 리턴한다.
# 만약 배열순회가 모두 끝났는데 아직 전체가 방문처리되지 않았다면 -1을 리턴한다.
visited = [False for _ in range(X+1)]
cnt = 0
for sec, place in enumerate(A):
if not visited[place]:
cnt += 1
visited[place] = True
if cnt == X:
return sec
if cnt < X:
return -1
'알고리즘 > 코딜리티' 카테고리의 다른 글
[코딜리티] 파이썬 _ MaxDoubleSliceSum (0) | 2021.08.04 |
---|---|
[코딜리티] 파이썬 _ Dominator (0) | 2021.07.31 |
[코딜리티] 파이썬 _ MaxCounters (0) | 2021.07.31 |
[코딜리티] 파이썬 _ TapeEquilibrium (0) | 2021.07.31 |