본문 바로가기
안녕하세요 :) FE 개발자 윤지홍입니다.
저는 리액트를 주로 사용해요.
UX/UI디자인에도 관심이 있어요.
Javascript React NextJs NodeJs Flutter HTML CSS PHP
👋
KAKAO BLIND RECRUITMENT 오픈채팅방
jiiii-hong | 알고리즘 | 2022년 11월 01일

KAKAO BLIND RECRUITMENT 오픈채팅방

KAKAO BLIND RECRUITMENT 오픈채팅방

jiiii-hong 알고리즘 2022년 11월 01일

해당 게시글은 "프로그래머스 LV2"의 "KAKAO BLIND RECRUITMENT 오픈채팅방" 알고리즘 문제 풀이입니다.

풀이

// STEP1 - 유저 정보는 "입장"과 "변경"이란 두개의 이벤트에서 바뀔 수 있기 때문에 user정보를 먼저 저장
// STEP2 - 필요한 로그는 "입장"과 "퇴장"의 기록이기 때문에 "Change" 이벤트는 걸러준다.
// STEP3 - 접속 로그에 노출되는 회원 정보를 "최신 정보"로 갱신하고 이벤트를 한글로 바꿔준다.

function solution(record) {
    var users = {};

    for (let v of record) {
      const data = v.split(" ");

      if (data[0] !== "Leave") {
        users[data[1]] = data[2];
      }
    }

    return record.reduce((stack, v) => {
      const [action, uid] = v.split(' ');

      if (action !== 'Change') {
        stack.push(
          `${users[uid]}님이 ${
            action === 'Enter' ? '들어왔습니다.' : '나갔습니다.'
          }`,
        );
      }

      return stack;
    }, []);
  }

 

'알고리즘' 카테고리의 다른 글

신규 아이디 추천 알고리즘  (0) 2022.08.16