728x90
반응형
https://school.programmers.co.kr/learn/courses/6/lessons/131130
def solution(cards):
Mval=0 #값을 갱신해가며
for i in range(len(cards)): # 8,6,3,7...카드의 값으로 나오게된다.
box=[0 for i in range (len(cards))] #카드순서대로
cnt1=0
cnt2=0
k=i
while(box[k]==0): #박스가 열리지 않았을 때,
cnt1+=1#상자1카운트+1
box[k]=1#상자를 열어준다
k=cards[k]-1 #숫자를 바꿔준다
#1박스의 수가 정해짐,
idx2=0
for j in range(len(box)):
if box[j]==0:
idx2=j
break#열리지 않은 가장 앞순번 박스를 가져옴
#2번째박스
for n in range(idx2, len(box)):
m=n
cnt2=0
while(box[m]==0): #박스가 열리지 않았을 때,
cnt2+=1#상자1카운트+1
box[m]=1#상자를 열어준다
m=cards[m]-1 #숫자를 바꿔준다
#2박스의 수가 정해짐
if cnt1*cnt2>Mval:
Mval=cnt1*cnt2
#곱을 구해 갱신
return Mval
잘 풀었다!! ><
옆에 a4용지를 두고 정리했다.
박스의 열림유무를 체크하기위해 box배열을 cards크기만큼 생성하고, 열었을 때 1을 넣어준다.
1박스/2박스 나누어서 곱해주어, Mval보다 크다면 값을 갱신해준다.
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 연속된 부분 수열의 합 (0) | 2023.06.23 |
---|---|
[프로그래머스] 공원 산책 lv1 파이썬 풀이 (0) | 2023.06.23 |
[Mysql] 평균 일일 대여 요금 구하기 풀이 (0) | 2023.06.20 |
[Mysql] 프로그래머스 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2023.06.19 |
두 원 사이의 정수 쌍 파이썬 풀이 (1) | 2023.06.18 |