☑️ 문제: 달리기 경주
https://school.programmers.co.kr/learn/courses/30/lessons/178871
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
☑️ Code
import java.util.*;
class Solution {
public String[] solution(String[] players, String[] callings) {
// 1. <이름, 순위>를 map 형태로 저장
Map<String, Integer> rankMap = new HashMap<>();
for (int i = 0; i < players.length; i++) {
rankMap.put(players[i], i);
}
// 2. map 자료구조를 활용해서 이름(key)에 해당하는 순위와 앞 순위를 교체 (players 배열과 map 정보를 swap)
for (String calling : callings) {
int rank = rankMap.get(calling);
String target = players[rank - 1];
players[rank] = target;
players[rank - 1] = calling;
rankMap.replace(target, rankMap.get(calling));
rankMap.replace(calling, rankMap.get(calling) - 1);
}
return players;
}
}
핵심은, map 자료구조를 활용하는 것.
'TIL (Today I Learned)' 카테고리의 다른 글
99클럽 코테 스터디 28일차 TIL + 오늘의 학습 키워드 (0) | 2024.08.19 |
---|---|
99클럽 코테 스터디 27일차 TIL + 오늘의 학습 키워드 (0) | 2024.08.17 |
99클럽 코테 스터디 25일차 TIL + 오늘의 학습 키워드 (0) | 2024.08.15 |
99클럽 코테 스터디 24일차 TIL + 오늘의 학습 키워드 (0) | 2024.08.14 |
99클럽 코테 스터디 23일차 TIL + 오늘의 학습 키워드 (0) | 2024.08.14 |