SPACE RUMI

Hi, I am rumi. Let's Splattack!

[IT] 프로덕트 개발/Coding Test - 코딩테스트

[LV1] 문자열 내 마음대로 정렬하기

스페이스RUMI 2022. 11. 21. 17:37
반응형

프로그래머스 LV1 > 연습문제 > 문자열 내 마음대로 정렬하기

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12915

[문제해결]
1. sort() 메서드로 정렬하면 되겠구나.
2. 비교할 대상이 같을때는 따로 반복돌아서 확인하면 되겠구나.
** 비교할 대상이 같을때는 반복 돌 필요 없이, 그냥 단어 통째로 비교하는게 좋다.

 

의식의 흐름대로 작성한 코드

function solution(strings, n) {
    strings.sort((a,b) =>{
            if(a[n] < b[n]){
                return -1
            }else if(a[n] > b[n]){
                 return 1
            }else{
                for(let i=0; i<a.length; i++){
                    console.log(a, b)
                    if(a[i] == b[i]) continue;
                    if(a[i] < b[i]){
                        console.log(a[i], b[i])
                        return -1
                        break;
                    } else if (a[i] > b[i]){
                        // console.log(a[i], b[i])
                        return 1
                        break;
                    } else return -1
                }
            }
        })
    return strings
}

 

for문 도는게 누가봐도 비효율적이라 문제를 다시한번 읽고 생각이라는걸 해보니.. 굳이 돌면서 확인할필요가 없겠다.
사전순이니 그냥 단순비교하자.

function solution(strings, n) {
    console.log(strings);
    strings.sort((a,b) =>{
        if(a[n] == b[n]){
            return a < b ? -1 : 1
        }
        return a[n] < b[n] ? -1 : 1
        })
    return strings
}

 

생각이라는걸 한번만 더 하자.

반응형