일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 백준 1541
- Stack
- 백준 3190번
- 프로그래머스 java
- 코틀린기초
- HashSet
- 18111번 마인크래프트 - java 구현
- 백준 1197번 최소 스패닝 트리 - java
- 프로그래머스
- 백준 1647번 도시 분할 계획 - java
- dp
- 프로그래머스 자바
- 백준 1043번 거짓말 - java 분리 집합
- kotlin
- 백준 14938번 서강그라운드
- StringBuilder
- append
- 백준 2473번 세 용액 - java
- map
- hash
- StringTokenizer
- 백준 2467번 용액 자바 - 이분탐색
- replace()
- 백준 1806번 부분합 java
- HashMap
- Java
- mysql hy000 에러
- toUpperCase
- 최소 힙 1927
- ac 5430번
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