티스토리 뷰
https://programmers.co.kr/learn/courses/30/lessons/42888
풀이법:
1. 최종으로 변경된 닉네임으로 다 덮어 씌워지기 때문에 <id, 최신닉네임> 저장하는 HashMap 만들기
2. id + " " + Enter/Leave를 차례대로 리스트에 저장한다
3. 2번 리스트를 순회 하면서 id의 최종닉네임을 1번 HashMap에서 가져온다.
Comment:
1. 시간 복잡도는 O(2n).
코드:
import java.util.*;
class Solution {
public String[] solution(String[] record) {
HashMap <String, String> idMap = new HashMap();
ArrayList<String> logList = new ArrayList();
for(int i = 0 ; i < record.length; i++) {
String log = record[i];
String[] pLog = log.split(" ");
String cmd = pLog[0];
String id = pLog[1];
String nickname = "";
if(cmd.contentEquals("Change")) {
nickname = pLog[2];
idMap.put(id, nickname);
}else {
int code = -1;
if(cmd.contentEquals("Enter")) {
nickname = pLog[2];
code = 1;
idMap.put(id, nickname);
}else
code = 2;
String str = id + " " + code;
logList.add(str);
}
}
int finLen = logList.size();
String[] answer = new String[logList.size()];
for(int i = 0 ; i < finLen; i++) {
String[] pLog = logList.get(i).split(" ");
String id = pLog[0];
int code = Integer.parseInt(pLog[1]);
String finNick = idMap.get(id);
String postFix = "";
if(code == 1)
postFix = "님이 들어왔습니다.";
else
postFix = "님이 나갔습니다.";
String log = finNick + postFix;
//System.out.println(log);
answer[i] = log;
}
return answer;
}
}
'코딩테스트 > 기업코테' 카테고리의 다른 글
[2021 KAKAO INTERN] 숫자 문자열과 영단어 (JAVA) (0) | 2021.09.03 |
---|---|
[2020 KAKAO BLIND] 괄호변환 (JAVA) (0) | 2021.09.02 |
[2021 KAKAO BLIND] 메뉴 리뉴얼 (JAVA) (0) | 2021.08.25 |
[2021 KAKAO BLIND] 신규 아이디 추천 (JAVA) (0) | 2021.08.23 |
[2020 카카오인턴] 수식 최대화 (0) | 2020.07.22 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 카카오 인턴
- Java
- 2019 Kakao Blind
- 스프링 컨테이너
- PatternSyntaxException
- 코테
- 2020 KAKAO
- 카카오코테
- nginx 내부
- decorator
- WORE
- 디자인패턴
- trie 소스코드
- 카카오
- 2021
- Kakao Blind
- okhttp3
- KAKAO 2021
- 프로그래밍 모델
- IOC
- 스프링
- WORA
- behavior parameterization
- digital tree
- Java #GC #가비지콜렉터 #Garbage Collector
- 신규 아이디 추천
- Java #JIT #JVM
- jvm
- 카카오 코테
- 모던 자바 인 액션
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함