Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
skarltjr opened this issue Feb 22, 2021 · 0 comments
Open

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

skarltjr opened this issue Feb 22, 2021 · 0 comments
Labels

Comments

@skarltjr
Copy link
Owner

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;
    }
}



@skarltjr skarltjr added the Daily label Mar 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant