Skip to content

2/22 카카오 오픈채팅방 / hashmap #58

Open
@skarltjr

Description

@skarltjr
package algo;

// 보자마자 ID - 닉네임  -> HASHMAP사용을 떠올렸다.


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class Solution {
    public String[] solution(String[] record) {
        HashMap<String, String> pair = new HashMap<>();// 마지막 Id-닉네임 기록을 위한
        List<String> log = new ArrayList<>(); // 출력문 리스트

        // 마지막에 변경 혹은 입장된 이름으로 모두 변경
        // 먼저 Id님이 들어왔습니다로 설정하고 마지막에 마지막저장 닉네임으로 변경해주기
        for (String reco : record) {
            String[] str = reco.split(" ");
            if (str[0].equals("Enter")) {
                log.add(str[1] + "님이 들어왔습니다.");
                pair.put(str[1], str[2]);
                pair.replace(str[1], str[2]);
            }
            if (str[0].equals("Leave")) {
                log.add(str[1] + "님이 나갔습니다.");
            }
            if (str[0].equals("Change")) {
                pair.replace(str[1], str[2]);
            }
        }

        // Id님이 들어왔습니다를  ->  닉네임님이 들어왔습니다로 전부 변경 후 배열에 추가해주기
        String[] answer = new String[log.size()];
        int i = 0;
        for (String s : log) {
            int idx = s.indexOf("님");
            String substring = s.substring(0, idx);
            String str = pair.get(substring);
            answer[i] = str + s.substring(idx, s.length());
            i++;
        }

        return answer;
    }
}



Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions