-코드
for _ in range(int(input())):
n, m = map(int, input().split())
num = list(map(int, input().split()))
a = [0 for i in range(n)]
a[m] += 1
r = 0
while 1:
if num[0] == max(num):
r += 1
if a[0] != 1:
num.pop(0)
a.pop(0)
else:
print(r)
break
else:
a.append(a.pop(0))
num.append(num.pop(0))
처음에는 진행을 for문 이후로 못하고 있다가 목표하는 숫자를 목적 값으로 정하고 그 값이 나왔을 경우 while문을 빠져나오게 만들려고 했으나 만들다 보니 마지막 입력에서 같은 수가 나오게 되면 이상한 값이 나올 수 있다는 것을 깨달았습니다. 그래서 찾아보니 다른 리스트를 하나 만들어서 해당하는 위치만 다른 숫자로 만드는 방법이 있어서 채용을 했고 리스트의 처음 값이 max값이 아닌 경우에 첫 번째 값을 뒤로 보내야 하는데 집중을 잘 못했는지 헷갈려서 고민을 많이 하였습니다..
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬]10829번 이진수 변환 (0) | 2021.05.19 |
---|---|
[백준/파이썬]1977번 완전제곱수 (0) | 2021.05.18 |
[백준/파이썬]21638번 SMS from MCHS (0) | 2021.05.16 |
[백준/파이썬]21633번 Bank Transfer (0) | 2021.05.16 |
[백준/파이썬]21631번 Checkers (0) | 2021.05.16 |