Koras02
Koras02코딩웹
Koras02
전체 방문자
오늘
어제
  • 분류 전체보기 (299)
    • 백엔드 (59)
      • nestjs (2)
      • Ruby (3)
      • PostgresQL (11)
      • MySQL (5)
      • Haskell (7)
      • Koa (3)
      • Java (3)
      • Python (5)
      • Rust (5)
      • MongoDB (2)
      • PHP (3)
      • Spring Boot (1)
      • redis (5)
      • deno (2)
    • 웹서버 (3)
      • nginx (1)
      • Apache (2)
      • Google Web Server (0)
    • 모바일개발 (5)
      • Figma (0)
      • React Native (2)
      • swift (0)
      • Flutter (3)
      • Kotlin (0)
    • 프론트 엔드 (158)
      • HTML (34)
      • CSS (7)
      • Javascript (35)
      • Angular (0)
      • Typescript (2)
      • React (58)
      • Vue (2)
      • GIT (6)
      • GraphQL (1)
      • Doker (4)
      • Go (8)
      • svelte (1)
      • gatsby (0)
    • etc. (47)
      • Notion (0)
      • TIL (24)
      • Algorithm (17)
      • Algorithm 개념 정리 (2)
      • Wiki (3)
      • Official document (1)
    • 웹개념 (12)
    • 변수정리 (1)
    • VSCode (2)
    • 포트폴리오 분석 (2)
      • React (2)
    • os (5)
      • 윈도우 (4)
      • Mac (0)
      • 가상머신 (0)
      • linux (1)
    • 응용프로그램언어 (2)
      • C (2)
      • C++ (0)
      • C# (0)
    • 블로그 운영관련 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
글쓰기

공지사항

  • [공지사항] 개발 이슈나 공식문서 업데이트 업로드 예정입니⋯

인기 글

태그

  • mysql
  • PostgreSQL
  • 문자열
  • 알고리즘
  • 하스켈
  • html
  • 데이터 타입
  • Flutter
  • koa
  • Rust
  • javascript
  • 프로그래머스
  • CSS
  • Haskell
  • redis
  • React
  • go
  • Java
  • html5
  • Til

티스토리

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
Koras02

Koras02코딩웹

etc./Algorithm

[알고리즘 테스트] 위장

2022. 1. 13. 09:59
728x90

문제설명

스파이들은 매일 다른 옷을 조합하여 자신을 위장합니다.

 

예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동근란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날에는 

청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다.

 

종류 이름
얼굴 동그란 안경, 검정 선글라스
상의 파란색 티셔츠
하의 청바지
겉옷 긴 코트

스파이가 가진 의상들이 담긴 2차열 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 만들어 주세요

 

제한사항

  • clothes의 각 행은 [의상의 이름, 의상의 종류] 로 이루어져 있습니다.
  • 스파이가 가진의 상의 수는 1개 이상 30개 이하여야 합니다.
  • 같은 이름을 가진 의상은 존재하지 않습니다.
  • clothes의 모든 원소는 문자열로 이루어져 있습니다.
  • 모든 문자열의 길이는 1이상 20이하인 자연수 이고 알파벳 소문자 또는 "_"로만 이루어져 있습니다.
  • 스파이는 하루에 최소 한 개의 의상은 입습니다.

 

풀이

같은 이름을 가진 의상의 존재 X -> 의상의 이름을 고려하지 않아도 된다.

하루에 최소 한가지 의상은 입는다 -> 아예 입지 않는 경우는 제거가 필요하다.

 

function solution(clothes) {
    const len = clothes.length; // 상수 len 값으로 옷의 length 길이 값을 선언
    
    let answer = 1; // answer 값의 초기값을 1로 선언 
    
    let obj = {}; // obj로 빈 객체를 선언해준다.
    
    for (let i =0 i<len; i++) {
        obj[clothes[i][1]] = (obj[clothes[i][1]] || 1) + 1;
    }
    
    for (let key in obj) {
        answer *= obj[key]
    }
    
    return answer -1;
}
  • 먼저 의상의 종류를 key값으로, 해당 종류의 포함될 의상 개수를 value로 선언하는 obj를 생성해 빈객체로 담아준다.
  • 해당 종류를 입지 않는 경우도 계산하기 위해서 value기본 값을 1로 지정 
  • 의상의 종류별로 모든 조합의 수를 곱하고, 아무것도 입지 않는 상태를 뺴기 위해 anser 값의 -1을 해준다.

참고 자료

 

[Programmers] 해시: Level 2 - 위장 (javascript) 문제 풀이

문제 원본 사이트 : https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예..

miiingo.tistory.com

 

'etc. > Algorithm' 카테고리의 다른 글

[알고리즘 테스트 대비] 사분면 고르기  (0) 2022.01.17
[알고리즘 테스트] 완주하지 못한 선수  (0) 2022.01.13
[알고리즘 테스트] 부족한 금액 계산하기  (0) 2022.01.13
    'etc./Algorithm' 카테고리의 다른 글
    • [알고리즘 테스트] 문자열 정수로 변환하기
    • [알고리즘 테스트 대비] 사분면 고르기
    • [알고리즘 테스트] 완주하지 못한 선수
    • [알고리즘 테스트] 부족한 금액 계산하기
    Koras02
    Koras02
    현재 사용중인 언어 - next-js,react,vue, typescript

    티스토리툴바