이 영역을 누르면 첫 페이지로 이동
lucid_dream 블로그의 첫 페이지로 이동

lucid_dream

페이지 맨 위로 올라가기

lucid_dream

다양한 상상을 현실로 만드는 멀티 크리에이터를 꿈꾸고 있습니다 ❤️

[Level 1] 완주하지 못한 선수

  • 2022.02.27 18:41
  • 📝 문제풀이/프로그래머스
글 작성자: NoHack
728x90

문제 설명

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.

제한 조건

  • 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.
  • completion의 길이는 participant의 길이보다 1 작습니다.
  • 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.
  • 참가자 중에는 동명이인이 있을 수 있습니다.

문제 풀이

const solution = (participant, completion) => {
  const result = {};

  participant.forEach((p) => {
    if (p in result) result[p]++;
    else result[p] = 1;
  });
  completion.forEach((c) => {
    if (--result[c] === 0) delete result[c];
  });

  return Object.keys(result).join('');
};

const inputs = [
  [
    // participant
    ['leo', 'kiki', 'eden'],
    // completion
    ['eden', 'kiki'],
  ],
  [
    ['marina', 'josipa', 'nikola', 'vinko', 'filipa'],
    ['josipa', 'filipa', 'marina', 'nikola'],
  ],
  [
    ['mislav', 'stanko', 'mislav', 'ana'],
    ['stanko', 'ana', 'mislav'],
  ],
];
inputs.forEach((input) => console.log(solution(...input)));

이 문제는 배열 프로토타입 메소드들을 사용해도 해결 가능하지만, 문제 유형이 해시이므로 이에 맞춰 해결하는 것이 좋습니다. 자바스크립트에서의 객체는 해시 테이블처럼 동작하기 때문에, 저는 객체를 사용해 문제를 해결했습니다. 만약 성능을 더 생각한다면 Map 자료형을 사용하는 것이 더 좋은 것 같습니다.

저작자표시 비영리 동일조건 (새창열림)

'📝 문제풀이 > 프로그래머스' 카테고리의 다른 글

[Level 1] 내적  (0) 2022.02.27
[Level 1] 소수 만들기  (0) 2022.02.27
[Level 1] K번째 수  (0) 2022.02.27
[Level 1] 모의고사  (0) 2022.02.27
[Level 1] 체육복  (0) 2022.02.27

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [Level 1] 내적

    [Level 1] 내적

    2022.02.27
  • [Level 1] 소수 만들기

    [Level 1] 소수 만들기

    2022.02.27
  • [Level 1] K번째 수

    [Level 1] K번째 수

    2022.02.27
  • [Level 1] 모의고사

    [Level 1] 모의고사

    2022.02.27
다른 글 더 둘러보기

정보

lucid_dream 블로그의 첫 페이지로 이동

lucid_dream

  • lucid_dream의 첫 페이지로 이동

검색

메뉴

  • All categories
  • About me
  • Guest Book

카테고리

  • 분류 전체보기 (122)
    • 💦 일상뻘글 (1)
    • ⭐️ 프로젝트 (7)
      • 사이드 프로젝트 (1)
      • 스터디 노트 (6)
    • 🌈 기술스택 (31)
      • Web Basic (10)
      • JavaScript (14)
      • React (0)
      • Git (7)
    • 💻 컴퓨터공학 (28)
      • 자료구조 (13)
      • 알고리즘 (7)
      • 운영체제 (4)
      • 소프트웨어 공학 (4)
    • 📝 문제풀이 (55)
      • 프로그래머스 (55)
      • 과제관 (0)
    • 🐹 취미생활 (0)
      • Film Log (0)
      • Cover Song (0)

댓글

정보

NoHack의 lucid_dream

lucid_dream

NoHack

나의 외부 링크

  • Github
  • Instagram

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / AXZ. Copyright © NoHack.

티스토리툴바