ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ๋ฌธ์ œ38. ์˜ˆ๋ฆผ์ด์˜ ์•„๋ฅด๋ฐ”์ดํŠธ
    ๐Ÿง  codingtest/javascript 100์ œ 2022. 3. 25. 11:04
    728x90

    ํ•™์ƒ๋“ค์˜ ์ ์ˆ˜๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž…๋ ฅ์„ ๋ฐ›๊ณ ,

     

    1~3์œ„ ํ•™์ƒ๋“ค์—๊ฒŒ ์‚ฌํƒ•์„ ์ฃผ๋„๋ก ํ•œ๋‹ค.


    (1 ~ 3์œ„ ํ•™์ƒ์€ ์—ฌ๋Ÿฌ๋ช… ์ผ์ˆ˜ ์žˆ์Œ)

    ์‚ฌํƒ•์„ ๋ฐ›์„ ํ•™์ƒ์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•ด๋ณด์ž !

    //์ž…๋ ฅ
    97 86 75 66 55 97 85 97 97 95
    //์ถœ๋ ฅ
    8

    ๋ฏธ๋ฆฌ ! ์ƒ๊ฐํ•ด๋ด์•ผํ•˜๋Š”๊ฒƒ

    • ์ˆœ์œ„๋ฅผ ๊ตฌํ•œํ›„ -> ๊ธฐ์กด๋ฐฐ์—ด์—๋‹ค filter์˜ ๊ต์ง‘ํ•ฉ ์†์„ฑ์„ ์ด์šฉํ•˜์—ฌ ์ฐพ์„์˜ˆ์ •
    • ์กฐ๊ธˆ์˜ ๋ฉ”์„œ๋“œ๋งŒ ์•Œ๋ฉด ํ’€์ˆ˜์žˆ๋Š” ๋ฌธ์ œ์ด๋‹ค
    new Set()// ๋ฐฐ์—ด๋‚ด ๊ฒน์น˜๋Š” ์š”์†Œ๋“ค์„ ์ œ๊ฑฐํ•ด์ค€๋‹ค -> ํ•˜์ง€๋งŒ ๊ฐ์ฒด๊ฐ’์œผ๋กœ ๋ณ€ํ•จ
    Array.from()// ๊ฐ์ฒด๋ฅผ ๋ฐฐ์—ด๋กœ ์ „ํ™˜ํ•ด์คŒ
    .sort() // ์ •๋ ฌํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ(์ˆซ์ž๋‚ด ๋‚ด๋ฆผ์ฐจ์ˆœ์€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ b - a)
    .slice()// 1-3์œ„๊นŒ์ง€ ์ž˜๋ผ์ค€๋‹ค
    .filter()// ๋ฐฐ์—ด๋ผ๋ฆฌ์˜ ์–ด๋– ํ•œ ์กฐ๊ฑด์„ ์ถ”๊ฐ€, ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์ƒ์„ฑ
    .length // ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ์•Œ๋ ค์คŒ

    ์ˆœ์œ„๋ฅผ ๊ตฌํ•ด๋ณด์ž

    1. ๋จผ์ € ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ์ž…๋ ฅ์„ ๋ฐ›๋Š”๊ฒƒ์„ ์ƒ๊ฐํ•˜๊ณ  .split(' ') ๋ฉ”์„œ๋“œ๋กœ ๋‚˜๋ˆ ์ค€์ดํ›„, rank ์„ ์–ธํ›„ new Set()์„ ์ด์šฉํ•˜์—ฌ ๋ฐ˜๋ณต์š”์†Œ๋ฅผ ์ œ๊ฑฐ, ๊ฐ์ฒด -> ๋ฐฐ์—ด์„ ์œ„ํ•ด Array.from()์‚ฌ์šฉ
    // let score = prompt().split(' ')
    let score ='97 86 75 66 55 97 85 97 97 95'.split(' ')
    let rank = Array.from(new Set(score))
    
    console.log(rank) //['97', '86', '75', '66', '55', '85', '95']
    1. sort()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ (b-a)๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ((a-b) -> ์˜ค๋ฆ„์ฐจ์ˆœ)ํ•œ๋’ค, slice()๋กœ 1-3์œ„๊นŒ์ง€ ๋‚˜๋ˆ ์ค€๋‹ค
    let score ='97 86 75 66 55 97 85 97 97 95'.split(' ')
    let rank = Array.from(new Set(score)).sort((a, b) => b - a).slice(0, 3)
    
    console.log(rank) // [ '97', '95', '86' ]

    ๋ฐฐ์—ด์— ๋Œ€์กฐํ•˜์—ฌ ์นด์šดํŠธ ์‹œ์ผœ๋ณด์ž

    1. count ์„ ์–ธํ›„, filter ํ•จ์ˆ˜๋ฅผ ํ†ตํ•˜์—ฌ score ๋ฐฐ์—ด๋‚ด 1-3์œ„๋ฅผ ๊ณจ๋ผ๋‚ผ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ๋งŒ๋“ค๊ณ  -> ๋ฐฐ์—ด์˜ length๋ฅผ ์ถœ๋ ฅ
    let score ='97 86 75 66 55 97 85 97 97 95'.split(' ')
    let rank = Array.from(new Set(score)).sort((a, b) => b - a).slice(0, 3)
    console.log(rank) // [ '97', '95', '86' ]
    
    
    let count = score.filter(a => rank.includes(a)).length
    console.log(count) // 6
    • ๊ธฐ์กด์˜ ๋‹ต
    let score = prompt().split(" ");// ['97', '100', '97', '56', '80', '100', '80', '60']
    score.sort((a, b) => a - b)// [ '100', '97', '80', '60', '56' ]
    
    let rank = []
    let c = 0
    
    while(rank.length < 4){
        let val = score.pop();
        if(!rank.includes(val)){
            rank.push(val);
        }
        c++;
    }
    
    console.log(c -1)

    ๋Œ“๊ธ€