문제링크
https://school.programmers.co.kr/learn/courses/30/lessons/42888
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 핵심
- 채팅방에 들어오고 나가거나, 닉네임을 변경한 기록이 담긴 문자열 배열 record가 매개변수로 주어질 때, 모든 기록이 처리된 후, 최종적으로 방을 개설한 사람이 보게 되는 메시지를 문자열 배열 형태로 return 하도록 solution 함수를 완성하라.
문제 풀이법
-해당 uid의 마지막 닉네임 확인하기
상태값에 따른 문자열 만들기
코드
public static String[] solution(String[] record) {
Map<String, String> map = new LinkedHashMap<>();
int c=0;
for (String re : record) {
String[] arr = re.split(" ");
String uid = arr[1];
String action = arr[0];
if (!action.equals("Leave")) {
map.put(uid, arr[2]);
}
if(action.equals("Change")){
c+=1;
}
}
System.out.println(map);
String[] answer = new String[record.length-c];
int index=0;
for(String re:record){
String[] arr = re.split(" ");
String uid = arr[1];
String action = arr[0];
String message=map.get(uid)+"님이 ";
if(action.equals("Enter")){
message+="들어왔습니다.";
}else if(action.equals("Leave")){
message+="나갔습니다.";
}else{
continue;
}
answer[index]=message;
index+=1;
}
System.out.println(Arrays.toString(answer));
return answer;
}
결과

gpt피드백
-불필요한 값이 좀 있지만 괜찮다
배운점 느낀점
-무난하게 풀었다
'코테 > lvl2' 카테고리의 다른 글
| 프로그래머스 후보키(lvl2)풀어보기 (0) | 2026.09.15 |
|---|---|
| dfs 조합이해하기 (0) | 2026.09.14 |
| 프로그래머스 캐시(lvl2) 풀어보기 (0) | 2026.09.14 |
| 프로그래머스 방금그곡(lvl2) 풀어보기 (0) | 2026.09.14 |
| 프로그래머스 파일명정렬(lvl2) 풀어보기 (0) | 2026.09.12 |