728x90
10번부터 시간초과로 고생한 문제. 밑에 함수를 사용해서 index를 가져왔는데 시간초과 계속발생.
hashmap으로 만들어서 서치하는게 훨씬빠른가보다..
public static int searchIndex(String[] enroll, String target)
{
int index = -1;
for(int ii = 0; ii < enroll.length ; ii++)
{
if(target.equals(enroll[ii]))
index = ii;
}
return index;
}
정답소스코드
import java.util.*;
class Solution {
public static int[] solution(String[] enroll, String[] referral, String[] seller, int[] amount) {
int[] answer = new int[enroll.length];
HashMap<String, Integer> map_index = new HashMap<>();
for(int ii = 0 ; ii < enroll.length ; ii++)
map_index.put(enroll[ii], ii);
for(int ii = 0 ; ii < seller.length ; ii++)
{
int value = amount[ii]*100;
String temp = seller[ii];
while(true)
{
int mine = 0;
int index = map_index.get(temp);
if(index == -1)
break;
String parent = referral[index];
temp = parent;
mine = value - (value / 10);
value = value/10 ;
if(index != -1)
answer[index]+=mine;
if(value == 0) /* 이것도 핵심. 나눠줄돈이 없을때 break */
break;
if(parent.equals("-"))
break;
}
}
return answer;
}
}
https://programmers.co.kr/learn/courses/30/lessons/77486
728x90
'코딩 테스트' 카테고리의 다른 글
이진탐색 샘플 (0) | 2023.01.09 |
---|---|
프로그래머스 - 로또의 최고 순위와 최저 순위 자바 (0) | 2023.01.09 |
프로그래머스 - 헤비 유저가 소유한 장소 (0) | 2023.01.09 |
프로그래머스 - 행렬 테두리 회전하기 자바 java (0) | 2023.01.09 |
프로그래머스 - 신규 아이디 추천 자바 java (0) | 2023.01.09 |