CSS&JS/코딩테스트

[JS100제] 98.청길이의 패션대회

arancia_ 2021. 12. 2. 14:17

문제 및 답안 링크 

 

문제98

A new tool for teams & individuals that blends everyday work apps into one.

www.notion.so

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/********
 * 패션의 선도주자 청길이는 패션의 발전을 위해 패션쇼를 방문해 유니크한 아이템을 조사하기로 하였습니다.
 * 청길이는 입장하는 사람들의 패션에서 
 * 처음 보는 아이템 만을 기록합니다. 
 * 이때 청길이의 기록에서 아래 규칙에 맞게 
 * 배열로 출력해 주세요.
 * 
 * 1. 청길이는 각 옷의 종류를 정수로 기록해 놓습니다.
 * ex) 입력은 "1번: 3,1 2번: 4 3번: 2,1,3 4번: 2,1,3,4" 형태의 문자열입니다.
 * 
 * 2. 기록은 청길이가 번호 순서로 유니크한 옷의 번호를 적습니다.
 * 
 * 3. 유니크한 옷은 기록된 순서로 추출되고 출력됩니다.
 * ex) 출력은 [3,1,4,2]입니다.
 * 
 * 입력
 * "1번: 4,2,3 2번: 3 3번: 2,3,4,1 4번: 2,3"
 * 출력
 * [4, 2, 3, 1]
 * 
 * 입력
 * "1번: 3,1 2번: 4 3번: 2,1,3 4번: 2,1,3,4"
 * 출력
 * [3, 1, 4, 2]
 * **********/
 
const test1 = "1번: 4,2,3 2번: 3 3번: 2,3,4,1 4번: 2,3";
const test2 = "1번: 3,1 2번: 4 3번: 2,1,3 4번: 2,1,3,4";
 
///////////////////////////////////
function mySolution(string){
    //0. 입력받은 문자열을 배열로 교체
    const all_case = [];
    string
    .split(/\s*[0-9]번\:\s*/g)
    .filter(item => item != "")
    .forEach(item => {
        const items = item.split(',').map(el => parseInt(el));
        all_case.push(items);
    });
 
    // console.log(all_case);
 
    //1. 유니크한 아이템 찾아서 입력하기 시작
    const unique = [];
    all_case.forEach(person=>{
        person.forEach(item => {
            if(!unique.includes(item)){unique.push(item);}
        });
    });
 
    //결과출력
    console.log(unique);
}//mySolution
 
mySolution(test1);
mySolution(test2);
 
cs

 

 

유용한 사이트 : 정규식 확인하기 (regexr.com)

 

'CSS&JS > 코딩테스트' 카테고리의 다른 글

[JS100제]97. 택배 배달  (0) 2021.12.02
[JS100제]95번 도장찍기  (0) 2021.12.02
[JS100제]70번 행렬곱하기 관련  (0) 2021.11.26
[JS 100제] 무료 JavaScript 100문제 및 해설  (0) 2021.11.26