* 순서
- 문제
- 문제 목표
- 문제 설명
- 문제 풀이
- 최종 코드
- 포인트
- 문제
- 문제 목표
최종 순위에 대한 선수 이름을 구하려고 한다.
- 문제 설명
불려지는 선수가 앞 선수를 추월한다.
추월되는 선수는 뒤로 밀려난다.
- 문제 풀이
1. map을 이용해서 선수에 대한 순위를 매긴다.
2. for문, map을 이용한다.
3. map을 통해 불려지는 선수 등수를 구한다.
4. 불려지는 선수 등수를 이용하여 이전 선수와 이름을 바꾼다.
5. map에서 불려진 선수의 순위를 갱신한다.
6. map에서 이전 선수의 순위를 갱신한다.
- 최종 코드
public static String[] solution(String[] players, String[] callings) {
Map<String, Integer> map = new HashMap<>();
// 1. map을 이용해서 선수에 대한 순위를 매긴다.
for(int i = 0; i < players.length; i++) {
map.put(players[i], i);
}
// 2. for문, map을 이용한다.
for(int i = 0; i < callings.length; i++) {
String calledPlayer = callings[i];
//3. map을 통해 불려지는 선수 등수를 구한다.
Integer rank = map.get(calledPlayer);
//4. 불려지는 선수 등수를 이용하여 이전 선수와 이름을 바꾼다.
String beforePlayer = players[rank - 1];
players[rank - 1] = players[rank];
players[rank] = beforePlayer;
//5. map에서 불려진 선수의 순위를 갱신한다.
map.put(calledPlayer, rank - 1);
//6. map에서 이전 선수의 순위를 갱신한다.
map.put(beforePlayer, rank);
}
return players;
}
- 포인트
Map, 변수치환
'Algorithm' 카테고리의 다른 글
[프로그래머스 Java] JadenCase 문자열 만들기 Lv.2 (0) | 2023.09.05 |
---|---|
[프로그래머스 Java] 추억 점수 Lv.1 (0) | 2023.09.05 |
[정렬 알고리즘] 선택정렬(Selection Sort), 삽입정렬(Insertion Sort) (0) | 2023.05.21 |
[프로그래머스] Lv.0 삼각형의 완성조건 (2) (0) | 2022.10.28 |
[프로그래머스] Lv.0 안전지대 [JAVA] (0) | 2022.10.27 |
댓글