코딍코딍
코딩기록
코딍코딍
전체 방문자
오늘
어제
  • 분류 전체보기 (271)
    • 개발 (2)
    • Java (1)
    • 스프링 (28)
    • JPA (11)
    • Git (3)
    • 알고리즘 (160)
      • 백준 (132)
      • 프로그래머스 (8)
      • SWEA (20)
    • 토이 프로젝트 (14)
      • 간단한 Springboot CRUD (1)
      • 게시판 프로젝트 (13)
    • 알고리즘 개념정리 (8)
    • 오류 해결 (13)
    • 보류 (0)
    • AWS (5)
    • 트러블 슈팅 (0)
    • 회고 (3)
    • CS (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

최근 글

티스토리

hELLO · Designed By 정상우.
코딍코딍

코딩기록

알고리즘/프로그래머스

오픈채팅방

2023. 6. 14. 19:45

https://school.programmers.co.kr/learn/courses/30/lessons/42888

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

소스코드

import java.util.*;

class Solution {
    public String[] solution(String[] record) {
        HashMap<String, String> map = new HashMap<>();
        List<String> list = new ArrayList<>();
        List<String> resultList = new ArrayList<>();

        for(String str : record) {
            String[] strs = str.split(" ");
            if(strs[0].equals("Enter"))  {
                list.add(strs[1] + "님이 들어왔습니다.");
                map.put(strs[1], strs[2]);
            }
            else if(strs[0].equals("Leave")) list.add(strs[1] + "님이 나갔습니다.");
            else map.put(strs[1], strs[2]);
        }
        for (String str : list) {
            String s = str.split(" ")[0];
            String id = s.substring(0, s.length() - 2);
            resultList.add(str.replace(id, map.get(id)));
        }

        return resultList.toArray(new String[0]);
    }
}

 

 

해결방법

단순히 오픈채팅방을 들어오고 나가고를 콘솔에 출력하면 되는 문제이다. 유저 아이디로 유저를 구분할 수 있고 유저 닉네임은 중복을 허용한다. 유저에 대한 정보를 HashMap<유저 아이디,유저 닉네임>에다 저장하였다. 입/퇴장 시 닉네임 위치에 아이디를 넣어 문자열을 만들어주었다. 이렇게 만들어진 문자열은 마지막에 replace()를 이용하여 아이디를 닉네임으로 대체시키면 된다. 그러기 위해서 Change 입력이 들어올 때 HashMap에 저장된 유저의 정보만 잘 갱신시켜주면 된다.

 

 

'알고리즘 > 프로그래머스' 카테고리의 다른 글

게임 맵 최단거리  (0) 2023.06.16
입국심사  (0) 2023.06.15
디펜스 게임  (0) 2023.06.14
뒤에 있는 큰 수 찾기  (0) 2023.04.10
롤케이크 자르기  (0) 2023.03.24
    '알고리즘/프로그래머스' 카테고리의 다른 글
    • 게임 맵 최단거리
    • 입국심사
    • 디펜스 게임
    • 뒤에 있는 큰 수 찾기
    코딍코딍
    코딍코딍
    ㅎ2

    티스토리툴바