반응형
프로그래머스의 레벨 2 문제 혼자 놀기의 달인
문제 요구 조건
상자 안에 들어있는 카드 번호가 순서대로 담긴 배열 cards
가 매개변수로 주어질 때, 얻을 수 있는 최고 점수를 구해서 return 하도록 solution 함수를 완성해야 한다.
풀이 생각 과정
전제 조건
문제의 제한 사항이 널널했기 때문에 간단하게 생각하여 풀 수 있었다.
과정
그룹을 분리하고 길이가 가장 긴 그룹 2개를 곱한게 최고 점수
그룹을 분리하기 위해서 방문했던 것들을 기록해야함
방문한 것들을 제외하고 순회해야함
방문한 것은 방문했다고 체크, 더이상 방문할 곳이 없으면 그룹 길이 저장
def solution(cards):
visit = [False] * len(cards)
group = []
for i in range(len(cards)):
cnt = 0
while not visit[i]:
visit[i] = True
i = cards[i] - 1
cnt += 1
group.append(cnt)
group = sorted(group, reverse=True)
return group[0] * group[1]
반응형
'Computer science > Algorithm' 카테고리의 다른 글
[프로그래머스] Python3 - 최솟값 만들기 (0) | 2023.12.05 |
---|---|
[프로그래머스] Python3 - 하노이의 탑 (0) | 2023.11.17 |
[프로그래머스] Python3 - 올바른 괄호 (0) | 2023.11.16 |
[프로그래머스] Python3 - 기능개발 (1) | 2023.11.15 |
[프로그래머스] Python3 - 의상 (0) | 2023.11.14 |