Lv 2. 오픈채팅방

2024. 7. 18. 23:50·Algorithm & Data Structures/Programers
목차
  1. 코드 흐름

코드 흐름

  • 나가고 들어오고의 순서를 list에 저장하되 userId 기준으로 저장한다.
  • map에는 닉네임의 변화를 key값을 id로 하여 저장한다.
  • 모든 기록들을 " " 스페이스바 기준으로 split 하여 Enter 관련인지 Change관련인지 Leave관련인지 분류한다
  • Enter시에는 list와 map에 최신화
  • Leave시에는 list만 최신화
  • Change 시에는 map만 최신화
  • 이후 list를 순회돌면서 map의 최종 닉네임 값을 찾아 변경해준다.
import java.util.*;

class p오픈채팅방 {
    public String[] solution(String[] record) {

        ArrayList<String> list = new ArrayList<>();
        HashMap<String,String> map = new HashMap<>();
        for(String str : record){
            String[] three = str.split(" ");
            if(three[0].equals("Enter")){
                list.add(three[1]+" 들어왔습니다.");
                map.put(three[1],three[2]);
            }
            else if(three[0].equals("Leave"))
                list.add(three[1]+" 나갔습니다.");
            else
                map.put(three[1],three[2]);
        }
        for(int i = 0 ; i < list.size() ; i++){
            String s = list.get(i).split(" ")[0];
            list.set(i,list.get(i).replaceAll(s,map.get(s)+"님이"));
        }
        String[] answer = new String[list.size()];
        return list.toArray(answer);

    }
}

'Algorithm & Data Structures > Programers' 카테고리의 다른 글

Lv 2. 2xn타일링  (1) 2024.07.20
Lv 2. 숫자변환하기  (1) 2024.07.19
Lv 2. 택배상자  (1) 2024.07.17
Lv 2. 스킬트리  (0) 2024.07.14
Lv 2. 더 맵게  (1) 2024.07.10
  1. 코드 흐름
'Algorithm & Data Structures/Programers' 카테고리의 다른 글
  • Lv 2. 2xn타일링
  • Lv 2. 숫자변환하기
  • Lv 2. 택배상자
  • Lv 2. 스킬트리
Geisha
Geisha
개발 일기
  • Geisha
    Geisha
    Geisha
  • 전체
    오늘
    어제
    • 분류 전체보기 (326)
      • Algorithm & Data Structures (246)
        • BOJ (104)
        • SWEA (1)
        • Programers (137)
        • Data Structures (3)
      • DB (27)
        • SQL (21)
        • RDBMS (2)
      • Java (1)
        • Class (1)
      • Spring (5)
        • Spring MVC (1)
        • Annotations (1)
      • CS (36)
        • 운영체제 (13)
        • 네트워크 (5)
      • Tool (6)
        • Git (5)
        • AWS (1)
      • Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백트래킹
    Dijkstra
    dp
    baekjoon
    동적계획법
    programmers
    unionfind
    Java
    알고리즘
    이분탐색
    다익스트라
    후위순회
    Union-Find
    구현
    SQL
    투포인터
    DynamicProgramming
    PriorityQueue
    binarySearch
    Stack
    프로그래머스
    골드
    algorithm
    스택
    경로압축
    dfs
    백준
    유니온파인드
    전위순회
    BFS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Geisha
Lv 2. 오픈채팅방
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.