반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 리눅스
- 텍스트마이닝
- 코딩테스트
- 빅데이터
- VAE
- pandas
- 베이지안
- PYTHON
- 파이썬
- 논문리뷰
- 강화학습
- DATA
- Graph
- 크롤링
- 알고리즘
- 데이터분석
- selenium
- AI
- bayesian
- 백준
- 텍스트분석
- YarinGal
- pytorch
- Crawling
- GNN
- 불확실성
- uncertainty
- dropout
- 우분투
- R
Archives
- Today
- Total
끄적거림
[HackerRank] New Year Chaos 본문
728x90
반응형
문제
요약하면, [1,2,3, ... , n] 인 list에서 주어지는 list로 변환하려면 몇 번의 swap이 있었는지 반환하거나, 적어도 하나의 원소라도 3번 이상의 swap이 발생하면, "Too Chaostic"을 반환한다.
코드
# def minimumBribes(q):
# nq = len(q)
# raw = range(1, nq+1)
# move_list = []
#
# for i in range(nq):
# ri = raw.index(q[i])
# move_list.append(ri - i)
# print(move_list)
# if max(move_list) > 2:
# print("Too chaotic")
# else:
# print(sum([m for m in move_list if m > 0]))
def minimumBribes(Q):
moves = 0
Q = [P - 1 for P in Q]
for i, P in enumerate(Q):
if P - i > 2:
print("Too chaotic")
return
for j in range(max(P - 1, 0), i):
if Q[j] > P:
moves += 1
print(moves)
if __name__ == '__main__':
q = [1, 2, 5, 3, 7, 8, 6, 4]
minimumBribes(q)
해석
- 위에 주석처리 한 것이 내 풀이인데, 좋은 접근은 아니었다.
- 주석처리 하지 않은 minimumBribes 함수는 커뮤니티에서 가져온 코드이다.
728x90
반응형
'Python > 알고리즘(코딩테스트)' 카테고리의 다른 글
[HackerRank] Arrays: Left Rotation (0) | 2022.06.29 |
---|---|
[HackerRank] 2D Array (0) | 2022.06.29 |
[HackerRank] Repeated String (0) | 2022.06.29 |
[HackerRank] Jumping on the Clouds (0) | 2022.06.28 |
[HackerRank] Counting Valleys (0) | 2022.06.28 |
Comments