๐Ÿ”’Algorithm

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ’€์ด(js) > ๋ฌธ์ž์—ด ๋‚ด ๋งˆ์Œ๋Œ€๋กœ ์ •๋ ฌํ•˜(lv1)

devWarrior 2023. 8. 1. 21:00
 

๋ฌธ์ œ ๐Ÿ”ฝ

https://school.programmers.co.kr/learn/courses/30/lessons/84512

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๋‹ค๋ฅธ์‚ฌ๋žŒ ํ’€์ด ๐Ÿ”ฝ

function solution(strings, n) {
    var answer = [];
    strings.sort((a,b)=>{
        if(a[n]>b[n]){
            return 1
        } else if(b[n]>a[n]){
            return -1
        } else if(a[n]==b[n]){
            if(a>b){
                return 1
            } else if(a<b){
                return -1
            }   else{
                return 0
            }
        }
    })
    return strings
}

 

๋‚ดํ’€์ด๐Ÿ”ฝ

1. ์„ฑ๊ณต โญ•  

function solution(strings, n) {
    var answer = [];
    // Set ์ด์šฉํ•˜์—ฌ ์ค‘๋ณต ์—†์ด ๋‹ค ๋‹ด์Œ
    let set = new Set()
    strings.forEach((val)=>{
        set.add(val[n])
    })
    // Set -> Array ๋ณ€ํ™˜ ํ›„ ์ •๋ ฌ
    let t = Array.from(set).sort()
    t.forEach((val)=>{
        let p = strings.filter((string)=> string[n]===val).sort()
            answer.push(...p)
    })
    return answer;
}

๋А๋‚€์ ๐Ÿ”ฝ

๊ตณ์ด set ์•ˆ์“ฐ๊ณ  sort๋งŒ์„ ์ด์šฉํ•ด์„œ ํ’€์–ด๋„ ๋์„ ๋“ฏ ์‹ถ๋‹ค

console.log("a">"b") // false

console.log("a"<"b") // true

๋ฅผ ์ด์šฉํ•˜๋ฉด ์‚ฌ์ „์—์„œ ๋’ค์ชฝ์— ๋‚˜์˜ค๋Š” ์ˆœ์œผ๋กœ sorting ํ•  ์ˆ˜ ์žˆ๋‹ค.