링크
https://school.programmers.co.kr/learn/courses/30/lessons/178871
1. 풀이
- 배열에서 서로 위치를 바꾸는 작업을 'swap' 이라고한다. 이 작업을 해주면된다.
- 각 선수들의 번호를 지정해놓기 위해서 Map<String, Integer> 형태의 hashmap을 생성한다.
- 핵심은 현재선수와 현재선수앞의선수를 구하는것이다.
2. 코드
import java.util.*;
class Solution {
public String[] solution(String[] players, String[] callings) {
Map<String, Integer> map = new HashMap<>();
for(int i=0; i<players.length; i++){
map.put(players[i], i);
}
for(int i=0; i<callings.length; i++){
int call = map.get(callings[i]);
String now = players[call];
players[call] = players[call-1];
players[call-1] = now;
map.put(players[call], call);
map.put(players[call-1], call-1);
System.out.println(Arrays.toString(players));
}
return players;
}
}
3. 후기
System.out.println 이 되어있는 부분을 보게되면 값이 아래와같이 출력된다. 한칸씩 현재선수와 현재선수앞의선수의 위치가 변하는것을 볼수있다.
[mumu, soe, kai, poe, mine]
[mumu, kai, soe, poe, mine]
[mumu, kai, soe, mine, poe]
[mumu, kai, mine, soe, poe]
나에겐 나름 짱구꽤나 굴려야하는 어려운 문제였다. 공부열심히하자.
'프로그래머스 코테 > 프로그래머스 Lv. 1' 카테고리의 다른 글
[프로그래머스 : Java] 카드 뭉치 (0) | 2023.06.07 |
---|---|
[프로그래머스 : Java] 바탕화면 정리 (0) | 2023.05.31 |
[프로그래머스 : Java] 자릿수 더하기 (0) | 2023.05.23 |
[프로그래머스 : Java] 평균 구하기 (2) | 2023.05.22 |
[프로그래머스 : Java] 짝수와 홀수 (0) | 2023.05.22 |