코딩테스트 문제/Hackerrank

[HackerRank] New Year Chaos

왕초보코딩러 2023. 5. 27. 23:55
728x90

내용 

바뀐 대기열을 보고 처음의 대기열과 비교해 최소 바뀐 횟수를 출력. 단 한 사람 당 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

 

 

https://vision-ai.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%A6%AC%EC%8A%A4%ED%8A%B8-%ED%95%AD%EB%AA%A9-%EC%B6%94%EA%B0%80-%EC%82%AD%EC%A0%9C

 

파이썬 리스트 항목 추가/삭제 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