내용
바뀐 대기열을 보고 처음의 대기열과 비교해 최소 바뀐 횟수를 출력. 단 한 사람 당 2번만 바꿀 수 있고, 3번 이상 바꿀 시 Too chaotic을 출력
입력값: t(테스트 횟수), n(롤러코스터 대기자 수), q(바뀐 대기열)
알고리즘
1부터 시작해서 n까지 원래 지점에서 앞으로 몇 번 왔는지 세어 본다(index() 사용). 제자리에 있는 것은 넘어간다
->Time limit exceeded
참고자료
리스트 삭제 관련
del list /리스트 전체 삭제
del list[인덱스 번호]
list.remove(요소) /요소가 없으면 에러
del list[list.index(찾을 요소)] /요소 없으면 에러
list.append(요소), list,insert(인덱스넘버, 요소), list.extend(리스트)
https://codechacha.com/ko/python-append-vs-extend/
Python - list의 append(), insert(), extend() 차이점
list는 append(), insert(), extend() 함수를 제공하며, 이 함수로 리스트에 아이템을 추가할 수 있습니다. 특징 및 차이점에 대해서 알아보겠습니다. append(item)는 리스트의 마지막에 인자로 전달된 아이
codechacha.com
파이썬 리스트 항목 추가/삭제 append(), insert(), del, remove(), pop()
python list append(), insert(), del, remove(), pop() 1. 리스트 맨 끝에 항목 추가하기 append() 아래처럼, append('Saturday') 를 해주면, append 안에 들어있는 값(Saturday)을 해당 리스트의 맨 끝에 추가하게 된다. 따라
vision-ai.tistory.com
문자열 특정 문자 찾기: str.find()
리스트에서는 불가
https://blockdmask.tistory.com/569
[python] 파이썬 find 함수에 대해서
안녕하세요. BlockDMask 입니다. 오늘은 파이썬의 find 함수에 대해서 알아보겠습니다. 1. 파이썬 find 함수 2. 파이썬 find 함수 예제 1. 파이썬 문자열 find 함수에 대해서 string.find(찾을 문자) string.find(
blockdmask.tistory.com
def minimumBribes(q):
num=len(q)
sum=0
for n in range(num,0,-1): #뒤의 숫자부터
if n!=q[n-1]: #n번째의 위치와 n번째 사람이 불일치하면
a=q.index(n)
if ((n-1)-a)>2:
print('Too chaotic')
return 0
else:
sum+=n-1-a
q.remove(n)
print('{}'.format (sum))
if __name__ == '__main__':
t = int(input().strip())
for t_itr in range(t):
n = int(input().strip())
q = list(map(int, input().rstrip().split()))
minimumBribes(q)
'코딩테스트 문제 > Hackerrank' 카테고리의 다른 글
[HackerRank] Recursive Digit Sum (0) | 2023.05.16 |
---|---|
[HackerRanck] Grid Challenge (0) | 2023.05.15 |
[HackerRank] Caesar Cipher (0) | 2023.05.15 |