[프로그래머스] 오픈채팅방 JAVA

AMUD·2022년 8월 3일
0

Algorithm

목록 보기
22/78

문제

문제링크

접근

  • 평이한 난이도였다.
  • [ 키-값 ] 형태를 사용하는 HashMap을 쓴다면 매우 유용하게 쓰이는 문제이다.
  • 굳이 Log라는 클래스까지 만들 필요는 없었던 것 같기두

소스 코드

import java.util.*;

class Main {
    static int N, M;
    static int[] Group;

    public static void main(String[] args) throws Exception {
        String s[] = { "Enter uid1234 Muzi", "Enter uid4567 Prodo", "Leave uid1234", "Enter uid1234 Prodo",
                "Change uid4567 Ryan", "Change uid4567 Ryatttt" };
        Solution sol = new Solution();

        System.out.println("result : " + sol.solution(s).length);
    }
}

class Solution {
    public String[] solution(String[] record) {
        List<Log> log = new ArrayList<>();

        HashMap<String,String> users = new HashMap<>();

        for (String records : record) {
            String[] currRecord = records.split(" ");

            if (currRecord[0].equals("Enter")) {
                log.add(new Log(currRecord[0], currRecord[1]));
                users.put(currRecord[1], currRecord[2]);
            } else if (currRecord[0].equals("Change")) {
                users.replace(currRecord[1], currRecord[2]);
            } else {
                log.add(new Log(currRecord[0], currRecord[1]));
            }
        }

        String[] answer = new String[log.size()];
        for (int i = 0; i < log.size(); i++) {
            if (log.get(i).state.equals("Enter")) {
                answer[i] = users.get(log.get(i).uid) + "님이 들어왔습니다.";
            } else {
                answer[i] = users.get(log.get(i).uid) + "님이 나갔습니다.";
            }
        }

        return answer;
    }

    class Log{
        String state;
        String uid;

        public Log(String state, String uid) {
            this.state = state;
            this.uid = uid;
        }
    }
}
profile
210's Velog :: Ambition Makes Us Diligent

0개의 댓글