코디잉
프로그래머스 - 달리기 경주 (JAVA) 본문
https://school.programmers.co.kr/learn/courses/30/lessons/178871
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
접근 방식) HashMap 사용
1. 순위대로 저장된 players 배열의 선수들의 이름을 HashMap<선수이름, 순위>로 넣어준다.
2. 호명된 선수가 저장된 callings 배열을 반복하며, 이전선수의 이름을 알아낸다.
호명된 선수와 그 이전 선수를 사용해서
2-1) players 배열의 순서를 변경해주고
2-2) map의 rank를 갱신해준다.
import java.util.*;
class Solution {
public String[] solution(String[] players, String[] callings) {
// 선수이름, 현재순위(0부터 시작)
HashMap<String, Integer> map = new HashMap<>();
for (int i = 0; i < players.length; i++){
map.put(players[i], i);
}
for (String player : callings) {
int rank = map.get(player);
String prevPlayer = players[rank - 1];
// players 배열 갱신
players[rank - 1] = player;
players[rank] = prevPlayer;
// map 갱신
map.put(player, rank - 1);
map.put(prevPlayer, rank);
}
return players;
}
}
'자료구조&알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 문자열 내 마음대로 정렬하기 (JAVA) (0) | 2023.09.15 |
---|---|
프로그래머스 - K번째수 (JAVA) (0) | 2023.09.15 |
프로그래머스 - 더 맵게 (JAVA) (0) | 2023.09.15 |
프로그래머스 - 같은 숫자는 싫어 (0) | 2023.09.15 |
프로그래머스 - 모의고사 (JAVA) (0) | 2023.07.28 |
Comments