BaGyun
빠균's 개발노트
BaGyun
전체 방문자
오늘
어제
  • 분류 전체보기 (71)
    • Today I Learned (44)
      • 오류 (8)
      • JavaScript (15)
      • TypeScript (9)
      • NodeJS (0)
      • NestJS (0)
      • Database (3)
      • ORM (1)
      • 알고리즘 (2)
      • 개인공부 (4)
      • Deploy (0)
      • Git (1)
    • 개인프로젝트 (4)
    • 알고리즘 (14)
      • 프로그래머스 (14)
    • 면접질문 (5)
    • 회고 (3)

인기 글

반응형

블로그 메뉴

  • 홈
  • 태그
  • 방명록
hELLO · Designed By 정상우.
BaGyun

빠균's 개발노트

알고리즘/프로그래머스

[프로그래머스] 오픈채팅방

2022. 7. 28. 18:52
 

프로그래머스

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

programmers.co.kr

나의 풀이

function solution(record) {
    const userInfo = {};
    const action = [];
    const stateMapping = {
        'Enter': '님이 들어왔습니다.',
        'Leave': '님이 나갔습니다.'
    }

    record.forEach((v) => {
        const [state, id, nick] = v.split(' ');

        if(state !== "Change") {
            action.push([state, id]);
        }

        if(nick) {
            userInfo[id] = nick;
        }
    })

    return action.map(([state, uid]) => {
        return `${userInfo[uid]}${stateMapping[state]}`;    
    })
}

forEach로 record 배열의 값들을 구조분해할당으로 나눴다.

Change는 닉네임을 변경하기 위해 조건식을 줬으며, userInfo에 객체 형태로 id를 키로 nick을 값으로 넣어줬다.

 

바꾼 닉네임을 id와 매치 시켜둔 상태로 action 배열에 담아둔 state와 id를 대조시켜 action배열에 문구를 담아 테스트 통과를 했다.

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

[프로그래머스] 폰켓몬  (0) 2022.07.28
[프로그래머스] 소수 만들기  (0) 2022.07.28
[프로그래머스] 문자열 압축  (0) 2022.07.27
[프로그래머스] 숫자 문자열과 영단어  (0) 2022.07.21
[프로그래머스] 로또의 최고 순위와 최저 순위  (0) 2022.07.20
    '알고리즘/프로그래머스' 카테고리의 다른 글
    • [프로그래머스] 폰켓몬
    • [프로그래머스] 소수 만들기
    • [프로그래머스] 문자열 압축
    • [프로그래머스] 숫자 문자열과 영단어
    BaGyun
    BaGyun

    티스토리툴바