-
[코딩테스트] HackerRank - New Year Chaos공부/코딩테스트 2024. 10. 25. 10:42728x90반응형
사람들이 1번부터 순서대로 번호표를 받고 줄을 서 있습니다.
그리고 그줄에서 바로 앞에 사람에게 뇌물을 주고 자리를 바꿀 수 있습니다. 하지만 번호표는 그대로입니다.
뇌물을 주고 3번 이상 바꾼 사람이 있으면 Too chaotic 를 표시하고
아니라면 뇌물을 준 횟수를 합해서 표시해주세요.
예시
입력 : q = [1,2,3,5,4,6,7,8]
5번 사람 4번에게 1번 뇌물을 제공함
출력 : 1
입력 : q = [4,1,2,3]
4번 사람이 총 3번의 뇌물을 제공함
출력 : Too chaotic
해결방법
void minimumBribes(vector<int> q) { for (int i = 0; i < q.size(); i++) { if (q[i] > i + 1 + 2) { cout << "Too chaotic\n"; return; } } int cnt = 0; for (int i = 0; i < q.size(); i++) { if (q[i] > i + 1) { for (int j = i + 1; j < q.size(); j++) { int temp = q[i]; q[i] = q[j]; q[j] = temp; cnt++; if (q[i] == i + 1) break; } } } cout << cnt << "\n"; }
728x90반응형'공부 > 코딩테스트' 카테고리의 다른 글
[코딩테스트] HackerRank - Recursive Digit Sum (0) 2024.10.24 [코딩테스트] HackerRank - Grid Challenge (0) 2024.10.24 [코딩테스트] HackerRank - Caesar Cipher (0) 2024.10.24 [코딩테스트] HackerRank - Tower Breakers (0) 2024.10.24 [코딩테스트] HackerRank - Zig Zag Sequence (0) 2024.10.24