728x90
반응형
1. Link to the problem
2. Feedback
- Hash 를 이용해서 나머지 하나의 값을 찾는 것까지는 생각했는데, 중복 값 처리가 안될거 같아 이 방법을 포기
- 결국 중복 값이 HashMap 에 덮어쳐도 array 값을 이용해서 덮어쳐져있는 값을 불러오기에 중복 값 문제 해결 됨.
- 또 중요한 것은 array 의 index != map 의 value 와 일치하면 안됨. 같은 값이니
3. Source
package hackerrank;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class IceCreamParlor
{
public static void main(String [] args)
{
Scanner in = new Scanner(System.in);
int t = in.nextInt();
for (int testcase = 0; testcase < t; testcase++)
{
int money = in.nextInt();
int n = in.nextInt();
int id[] = new int [n + 1];
for (int i = 1; i < n + 1; i++)
id[i] = in.nextInt();
int res[] = solve(id, money);
for (int num : res)
{
System.out.print(num + " ");
}
System.out.println();
}
in.close();
}
public static int [] solve(int [] id, int money)
{
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (int i = 1; i < id.length; i++)
{
map.put(id[i], i);
}
System.out.println(map);
for (int i = 1; i < id.length; i++)
{
int diff = money - id[i];
if (diff > 0 && map.containsKey(diff)
&& map.get(diff) != i)
{
return new int [] { i, map.get(diff) };
}
}
throw new IllegalArgumentException("No answer...");
}
}
'algorithm > hackerRank' 카테고리의 다른 글
[HackkerRank] DP: Coin Change (0) | 2018.06.26 |
---|---|
[HackkerRank] Recursion: Davis' Staircase (0) | 2018.06.26 |
[HackkerRank] Bit Manipulation: Lonely Integer (0) | 2018.06.25 |
HackkerRank: Time Complexity:Primality (0) | 2018.06.23 |
HackerRank BFS: Shortest Reach in a Graph (0) | 2018.03.09 |
댓글