https://school.programmers.co.kr/learn/courses/30/lessons/178871
처음 작성한 코드
import java.util.*;
class Solution {
public String[] solution(String[] players, String[] callings) {
List<String> list = Arrays.asList(players);
for(String calling : callings) {
int index = list.indexOf(calling);
players[index] = players[index - 1];
players[index - 1] = calling;
}
return players;
}
}
문제점 : List를 사용해서 인덱스 검색시간이 오래걸림
수정된 코드
import java.util.*;
class Solution {
public String[] solution(String[] players, String[] callings) {
HashMap<String, Integer> map = new HashMap<>();
for(int i = 0; i < players.length; i++) {
map.put(players[i], i);
}
for(String calling : callings) {
int index = map.get(calling);
players[index] = players[index - 1];
players[index - 1] = calling;
map.put(players[index - 1], index - 1);
map.put(players[index], index);
}
return players;
}
}
해결방안 : HashMap을 사용하여 검색 시간을 단축시켰다
'TIL' 카테고리의 다른 글
면접 피드백, 추가 공부할 것 정리 (0) | 2024.08.30 |
---|---|
Cannot add or update a child row: a foreign key constraint fails Error (0) | 2024.08.29 |
Spring Data 페이징, 정렬 기능 (0) | 2024.08.27 |
면접 준비 (0) | 2024.08.26 |
Entity 연관 관계 ( 1 : 1 / N : 1 / 1 : N / N : M ) (0) | 2024.08.23 |