반응형
1). 문제 : www.hackerrank.com/challenges
2). 풀이 :
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;
public class Solution {
// Complete the minimumBribes function below.
static void minimumBribes(int[] q) {
int cnt =0;
for(int i=q.length-1; i>=0; i--) {
//한 사람이 3명에게 뇌물을 줬을 때 => 12345 숫자순서 활용
if(q[i] - (i + 1) > 2) {
System.out.println("Too chaotic");
return;
}
//Math.max()=> 두수중 큰값을 뱉는다. => index Out of bounce 해결 2번까지는 앞 한자리
//인당 최대 2명까지만 뇌물 가능
for (int j = Math.max(0, q[i] - 2); j <= i; j++)
if (q[j] > q[i]) {
cnt++;
}
}
System.out.println(cnt);
}
private static final Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
int t = scanner.nextInt();
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
for (int tItr = 0; tItr < t; tItr++) {
int n = scanner.nextInt();
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
int[] q = new int[n];
String[] qItems = scanner.nextLine().split(" ");
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
for (int i = 0; i < n; i++) {
int qItem = Integer.parseInt(qItems[i]);
q[i] = qItem;
}
minimumBribes(q);
}
scanner.close();
}
}
아 정말 어렵다..
애매하게 Test Case 한개 or 두개 가 꼭 틀리게 나온다..
결국...
언제 잘할 수 있을것인가 !!!ㅎ..
반응형
'Java > Algorithm' 카테고리의 다른 글
[Java-Algorithm] HackerRank Java - Mark and Toys 풀이 (0) | 2021.01.27 |
---|---|
[Java-Algorithm] HackerRank Java Minimum Swaps 2 풀이 (0) | 2021.01.26 |
[Java-Algorithm] HackerRank Java Arrays: Left Rotation 풀이 (0) | 2021.01.26 |
[Java-Algorithm] HackerRank Java 2D Array - DS 풀이 (0) | 2021.01.25 |
[Java-Algorithm] HackerRank Java Date and Time 풀이 (0) | 2021.01.25 |