문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
알고리즘
해시맵
풀이
모든 사용자의 마지막 닉네임을 알 수 있어야하므로 해시맵을 이용해 id에 해당하는 마지막 닉네임을 저장한다.
record를 두 번 탐색하면서
첫 번째에는 enter, change 명령어가 나왔을 때 변경된 아이디를 저장하고,
두 번째에는 enter, leave 명령어가 나왔을 때 id에 따른 닉네임을 해시맵에서 가져와 정답에 추가한다.
코드
import java.util.*;
class Solution {
public ArrayList<String> solution(String[] record) {
ArrayList<String> answer = new ArrayList<>();
Map<String, String> map = new HashMap<>();
for(String r: record) {
StringTokenizer st = new StringTokenizer(r, " ");
char c = st.nextToken().charAt(0);
String id = st.nextToken();
if(c == 'E' || c == 'C')
map.put(id, st.nextToken());
}
for(String r: record) {
StringTokenizer st = new StringTokenizer(r, " ");
StringBuilder sb = new StringBuilder();
char c = st.nextToken().charAt(0);
String id = st.nextToken();
if(c == 'E')
sb.append(map.get(id)).append("님이 들어왔습니다.");
else if(c == 'L')
sb.append(map.get(id)).append("님이 나갔습니다.");
else
continue;
answer.add(sb.toString());
}
return answer;
}
}
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 문자열 압축 (Java) (0) | 2022.11.15 |
---|---|
[프로그래머스] 후보키 (Java) (0) | 2022.11.15 |
[프로그래머스] n진수 게임 (Java) (0) | 2022.11.15 |
[프로그래머스] 파일명 정렬 (Java) (0) | 2022.11.14 |
[프로그래머스] 압축 (Java) (0) | 2022.11.14 |