광규니
광규니네
광규니
전체 방문자
오늘
어제
  • 분류 전체보기 (154)
    • 알고리즘 (100)
      • 알고리즘 개념 (2)
      • 문제 풀이 (96)
    • 주절주절 (19)
      • 자격증, 활동 후기 (4)
      • 전시회 후기 (3)
      • 이모저모 (2)
      • 회고 (3)
      • 뜨럼 (7)
    • 운영체제 (9)
    • 개발 지식 (9)
      • Apple Watch (4)
      • MySQL (2)
      • Eclipse (1)
      • XCode (1)
    • 네트워크 공부 (1)
    • 데이터베이스 공부 (5)
    • Java 공부 (7)
    • TMP (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • DP
  • 자바
  • 애플워치 앱 만들기
  • 합주
  • BOJ
  • OS
  • 컴퓨터 사이언스
  • 개념
  • 오블완
  • 프로그래머스
  • 티스토리챌린지
  • 다이나믹 프로그래밍
  • 드린이
  • 알고리즘
  • 운영체제
  • 구현
  • 백준
  • BFS
  • 파이썬
  • 애플워치 앱

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
광규니

광규니네

알고리즘/문제 풀이

[Java/자바 프로그래머스] 오픈 채팅방

2022. 1. 7. 22:10
반응형

풀이

Map은 아이디와 닉네임을 관리해주고, Queue는 채팅방 메세지를 관리했습니다.

닉네임이 바뀔 때 map에 아이디인 키로 접근하여서 닉네임인 value값을 변경해주었습니다.

 

Leave 와 Change 상황에는 조건을 주어서 풀이를 완료했습니다. !

import java.io.*;
import java.util.*;

class Solution {
    static Map<String, String> map;
    static Queue<String[]> result;
    
    public String[] solution(String[] record) {
        map = new HashMap<>();
        result = new LinkedList<>();
        String[] answer = {};
        StringTokenizer st;
        for(int i = 0 ; i < record.length ; i++){
            st = new StringTokenizer(record[i], " ");
            String cmd = st.nextToken();
            String id = st.nextToken();
            String nickName;
            if(!cmd.equals("Leave")){
                nickName = st.nextToken();
                // map으로 아이디 닉네임 구분하기
                map.put(id, nickName);
            }

            
            if(cmd.equals("Change")) continue;
            else if(cmd.equals("Enter")) result.offer(new String[]{id, "들어왔습니다."});
            else result.offer(new String[]{id, "나갔습니다."});
        }   
        int size = result.size();
        answer = new String[size];
        for(int i = 0 ; i < size ; i ++){

            String[] cur = result.poll();
            String nickName = map.get(cur[0]);
            answer[i] =nickName+"님이 "+cur[1];
        }
        
        return answer;
    }
}
반응형
저작자표시 (새창열림)

'알고리즘 > 문제 풀이' 카테고리의 다른 글

[Java/자바 백준 21609] 상어 중학교  (0) 2022.01.15
[Java/자바 백준 20057] 마법사 상어와 토네이도  (0) 2022.01.10
[Java/자바 20056 백준] 마법사 상어와 파이어볼  (0) 2022.01.06
[Java/자바 백준 1520] 내리막 길  (0) 2022.01.05
[Java/자바 20055 백준] 컨베이어 벨트 위의 로봇  (0) 2022.01.05
    '알고리즘/문제 풀이' 카테고리의 다른 글
    • [Java/자바 백준 21609] 상어 중학교
    • [Java/자바 백준 20057] 마법사 상어와 토네이도
    • [Java/자바 20056 백준] 마법사 상어와 파이어볼
    • [Java/자바 백준 1520] 내리막 길
    광규니
    광규니
    공부 및 일상 올리기~

    티스토리툴바