๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป
article thumbnail
๋ฐ˜์‘ํ˜•

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ '์ถ”์–ต ์ ์ˆ˜' ๋ฌธ์ œ ํ’€์ด (LV.1)

โ“ ๋ฌธ์ œ 

๋ฌธ์ œ ์„ค๋ช…

์‚ฌ์ง„๋“ค์„ ๋ณด๋ฉฐ ์ถ”์–ต์— ์ –์–ด ์žˆ๋˜ ๋ฃจ๋Š” ์‚ฌ์ง„๋ณ„๋กœ ์ถ”์–ต ์ ์ˆ˜๋ฅผ ๋งค๊ธธ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์ง„ ์†์— ๋‚˜์˜ค๋Š” ์ธ๋ฌผ์˜ ๊ทธ๋ฆฌ์›€ ์ ์ˆ˜๋ฅผ ๋ชจ๋‘ ํ•ฉ์‚ฐํ•œ ๊ฐ’์ด ํ•ด๋‹น ์‚ฌ์ง„์˜ ์ถ”์–ต ์ ์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์ง„ ์† ์ธ๋ฌผ์˜ ์ด๋ฆ„์ด ["may", "kein", "kain"]์ด๊ณ  ๊ฐ ์ธ๋ฌผ์˜ ๊ทธ๋ฆฌ์›€ ์ ์ˆ˜๊ฐ€ [5์ , 10์ , 1์ ]์ผ ๋•Œ ํ•ด๋‹น ์‚ฌ์ง„์˜ ์ถ”์–ต ์ ์ˆ˜๋Š” 16(5 + 10 + 1)์ ์ด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ์ง„ ์† ์ธ๋ฌผ์˜ ์ด๋ฆ„์ด ["kali", "mari", "don", "tony"]์ด๊ณ  ["kali", "mari", "don"]์˜ ๊ทธ๋ฆฌ์›€ ์ ์ˆ˜๊ฐ€ ๊ฐ๊ฐ [11์ , 1์ , 55์ ]]์ด๊ณ , "tony"๋Š” ๊ทธ๋ฆฌ์›€ ์ ์ˆ˜๊ฐ€ ์—†์„ ๋•Œ, ์ด ์‚ฌ์ง„์˜ ์ถ”์–ต ์ ์ˆ˜๋Š” 3๋ช…์˜ ๊ทธ๋ฆฌ์›€ ์ ์ˆ˜๋ฅผ ํ•ฉํ•œ 67(11 + 1 + 55)์ ์ž…๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ์›Œํ•˜๋Š” ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์„ ๋‹ด์€ ๋ฌธ์ž์—ด ๋ฐฐ์—ด name, ๊ฐ ์‚ฌ๋žŒ๋ณ„ ๊ทธ๋ฆฌ์›€ ์ ์ˆ˜๋ฅผ ๋‹ด์€ ์ •์ˆ˜ ๋ฐฐ์—ด yearning, ๊ฐ ์‚ฌ์ง„์— ์ฐํžŒ ์ธ๋ฌผ์˜ ์ด๋ฆ„์„ ๋‹ด์€ ์ด์ฐจ์› ๋ฌธ์ž์—ด ๋ฐฐ์—ด photo๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์‚ฌ์ง„๋“ค์˜ ์ถ”์–ต ์ ์ˆ˜๋ฅผ photo์— ์ฃผ์–ด์ง„ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ด์— ๋‹ด์•„ returnํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

    • 3 ≤ name์˜ ๊ธธ์ด = yearning์˜ ๊ธธ์ด≤ 100
      • 3 ≤ name์˜ ์›์†Œ์˜ ๊ธธ์ด ≤ 7
      • name์˜ ์›์†Œ๋“ค์€ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
      • name์—๋Š” ์ค‘๋ณต๋œ ๊ฐ’์ด ๋“ค์–ด๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
      • 1 ≤ yearning[i] ≤ 100
      • yearning[i]๋Š” i๋ฒˆ์งธ ์‚ฌ๋žŒ์˜ ๊ทธ๋ฆฌ์›€ ์ ์ˆ˜์ž…๋‹ˆ๋‹ค.
    • 3 ≤ photo์˜ ๊ธธ์ด ≤ 100
      • 1 ≤ photo[i]์˜ ๊ธธ์ด ≤ 100
      • 3 ≤ photo[i]์˜ ์›์†Œ(๋ฌธ์ž์—ด)์˜ ๊ธธ์ด ≤ 7
      • photo[i]์˜ ์›์†Œ๋“ค์€ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
      • photo[i]์˜ ์›์†Œ๋“ค์€ ์ค‘๋ณต๋œ ๊ฐ’์ด ๋“ค์–ด๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

์ž…์ถœ๋ ฅ ์˜ˆ

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

๋ฐ˜์‘ํ˜•

๐Ÿ’ก ์„ฑ๊ณตํ•œ ํ’€์ด

function solution(name, yearning, photo) {
    const answer = [];
    const hash = new Map();
    
    name.forEach((item, index) => {
        hash.set(item, yearning[index]);
    })
    
    for(let i = 0; i < photo.length; i++) {
        let count = 0;
        for(let j = 0; j < photo[i].length; j++) {
            const score = hash.get(photo[i][j]);
            if(!score) continue;
            count += score;
        }
        answer.push(count);
    }
    
    return answer;
}

hash ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด์„œ ์ด๋ฆ„์„ key, ์ ์ˆ˜๋ฅผ value๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ฃผ์—ˆ๋‹ค.

 

photo ์ด์ค‘ ๋ฐฐ์—ด์— ๋Œ€ํ•œ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆฌ๋Š”๋ฐ,

์ฒซ ๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ์—์„œ๋Š” ์ ์ˆ˜์˜ ํ•ฉ์„ ๊ณ„์‚ฐํ•  count ๋ณ€์ˆ˜๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ฃผ์—ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ์— ์„ ์–ธํ•œ ์ด์œ ๋Š” ๊ฐ ์‚ฌ์ง„๋งˆ๋‹ค ์ ์ˆ˜ ํ•ฉ์‚ฐ์ด ๋๋‚œ ๋’ค ๋‹ค์Œ ์‚ฌ์ง„์„ ๊ณ„์‚ฐํ•  ๋•Œ 0์œผ๋กœ ์ดˆ๊ธฐํ™”์‹œ์ผœ์ค˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์‚ฌ์ง„ ์† ์ธ๋ฌผ์— ๋Œ€ํ•œ ๋ฐ˜๋ณต๋ฌธ(์•ˆ์— ์žˆ๋Š” ๋ฐ˜๋ณต๋ฌธ)์ด ์‹คํ–‰๋  ๋•Œ์—๋Š” ํ•ด๋‹น ์ด๋ฆ„์„ ํ†ตํ•ด์„œ hash์— key๋กœ ์ ‘๊ทผํ•ด์„œ value(์ ์ˆ˜)๋ฅผ ๊ฐ€์ ธ์™€์„œ score ๋ณ€์ˆ˜์— ๋‹ด์•„์ฃผ์—ˆ๋‹ค.

์ธ๋ฌผ๋งˆ๋‹ค ์ ์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์–ด์„œ score ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ์—†์œผ๋ฉด continue๋ฅผ ํ†ตํ•ด์„œ ๋‹ค์Œ ์š”์†Œ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ฒŒ ํ•ด ์ฃผ๊ณ ,

์ด ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด count ๋ณ€์ˆ˜์— socre๋ฅผ ๋”ํ•ด์ง€๋„๋ก ํ–ˆ๋‹ค.

 

์ธ๋ฌผ ์† ์ ์ˆ˜ ํ•ฉ์‚ฐ์ด ๋๋‚˜๋ฉด answer ๋ณ€์ˆ˜์— count๋ฅผ push ํ•ด์ฃผ์—ˆ๋‹ค.

โœ” ์ฑ„์ 

์ฑ„์  ๊ฒฐ๊ณผ

๋ฐ˜์‘ํ˜•
profile

๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป

@์šฉ๋‡ฝ

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!