반응형
Hash Tables: Ice Cream Parlor | HackerRank
Help Sunny and Johnny spend all their money during each trip to the Ice Cream Parlor.
www.hackerrank.com
포인트는 카테고리에 있는 것처럼 HashTable (HashMap)!
1. cost 값들을 HashMap에 저장하고
2. for : cost 값을 하나씩 가지고 오며 money-cost 값을 구함
3. money-cost 값이 hashmap에 있는지 확인하고, 있으면 return
이렇게 하면 O(n)의 시간복잡도를 가져서 시간초과가 안남
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toList;
class Result {
/*
* Complete the 'whatFlavors' function below.
*
* The function accepts following parameters:
* 1. INTEGER_ARRAY cost
* 2. INTEGER money
*/
public static void whatFlavors(List<Integer> cost, int money) {
// Write your code here
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
int size = cost.size();
for (int i = 0; i < size; i++) {
map.put(cost.get(i), i + 1);
}
for (int i = 0; i < size; i++) {
int f = cost.get(i);
int k = money - f;
if (map.containsKey(k)) {
int val = map.get(k);
if(val != i+1){
System.out.println(i+1 + " " + val);
return;
}
}
}
}
}
반응형
'알고리즘' 카테고리의 다른 글
Recursion: Davis' Staircase 풀이 Java (0) | 2022.07.10 |
---|---|
Strings: Making Anagrams java 풀이 (0) | 2022.07.09 |
Max Array Sum 풀이 Java (0) | 2022.07.09 |
Binary Search Tree : Lowest Common Ancestor 풀이 Java (0) | 2022.07.09 |
2021 KAKAO BLIND 코딩테스트 메뉴 리뉴얼 풀이 Java (0) | 2022.07.07 |
댓글