일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 스프링 on-profile
- Java
- 백준 2660번 회장뽑기 G5
- kotlin
- StringBuilder
- 코틀린기초
- replace()
- 백준 2589번 보물섬 G5
- 프로그래머스 java
- 백준 1967번 트리의 지름 G4 자바
- HashMap
- append
- StringTokenizer
- 백준 11725번 트리의 부모 찾기
- 백준 2206번 벽 부수고 이동하기 G3
- 백준 8979번 올림픽 S5 자바
- HashSet
- toUpperCase
- 전위 중위 후위
- 포인트 컷
- Stack
- 프로그래머스
- 백준 1240번 노드사이의 거리
- 프로그래머스 자바
- 백준 1600번 말이 되고픈 원숭이
- hash
- 스프링 다중프로필
- 서브모듈 yml
- dp
- map
Archives
- Today
- Total
말하는 컴공감자의 텃밭
프로그래머스 달리기 경주 <6점> - 자바(java) HashMap 본문
728x90
프로그래머스 달리기 경주
callings에 담기면 해당 이름을 가진 선수가 추월했다는 뜻이다. 4등인 "kai"가 불렸다면 3등으로 제쳤다는 말이다.
그럼 calling에 불린 선수와 앞에 있는 선수를 스위칭하면 되는 문제이다.
Map선언으로 선수명과 등수를 Key와 Value로 넣어줬다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import java.util.*; class Solution { public String[] solution(String[] players, String[] callings) { Map<String,Integer> rmap = new HashMap<>(); for(int i=0; i<players.length; i++){ rmap.put(players[i],i); } for(int i = 0; i<callings.length; i++){ int p = rmap.get(callings[i]); //kai 는 [3] = p String fp = players[p-1]; //p 에서 -1 위치 인 poe = fp players[p-1]= callings[i]; // 위치 스위칭 players[p] = fp; // poe <=> kai rmap.put(callings[i],p-1); // rmap에 정리 rmap.put(fp,p); } return players; } } | cs |
진작에 코드 자체에 주석 넣을걸~
728x90
'알고리즘 > Programmers - Java' 카테고리의 다른 글
프로그래머스 크레인 인형뽑기 - 자바(java) stack (0) | 2023.05.27 |
---|---|
프로그래머스 최대값 만들기 - 자바(java) (0) | 2023.05.26 |
프로그래머스 추억점수 - 자바(java) HashMap (0) | 2023.05.20 |
프로그래머스 개인정보 수집 유효기간 <4점> - 자바(java) ArrayList (0) | 2023.05.20 |
프로그래머스 구슬을 나누는 경우의 수 <7점> - 자바(java) 조합 Biginteger (1) | 2023.05.13 |
Comments