[TIL] 24.01.02

sssujijjl·2024년 1월 2일

[TIL]

목록 보기
9/51

[문제]

  • 2주차 : 문자열 내 마음대로 정렬하기

문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때,
각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하세요.

[풀이]

풀다가 도저히 모르겠어서 풀이 영상을 보았다,,

function solution(strings, n) {
    let result = [];

    for (let i = 0; i < strings.length; i++) {
      strings[i] = strings[i][n] + strings[i];
    }

    strings.sort();

    for(let j = 0; j < strings.length; j ++) {
      strings[j] = strings[j].replace(strings[j][0],"");
      result.push(strings[j]);
    }

    return result;
}

문자열에 n번째 글자를 앞에 붙여 배열을 만든 후, 오름차순으로 정렬한 후에
앞 글자를 지워주었다.

- 다른 사람 풀이

function solution(strings, n) {

    return strings.sort((s1, s2) => 
    s1[n] === s2[n] ? s1.localeCompare(s2) : s1[n].localeCompare(s2[n]));
}

// localeCompare 
// : -1인 경우, 왼쪽에 있는 문자열이 순서가 빠름 / 1인 경우, 오른쪽에 있는 문자열이 순서가 빠름 / 0인 경우, 같음
// 대소문자도 구분 가능 (sensitivity)
// localeCompare(str, 'en', {sensitivity : 'base' or 'case'})
// base -> 대소문자 구분X  /  case -> 대소문자 구분

다들 어떻게 이렇게 간단하게 코드를 작성하는지..

[배운점]

오늘은 문제를 풀지 못하였지만 아직 코딩 공부한지 얼마 되지 않았다는 생각을 하면서,
풀지 못하였어도 다른 코드를 보면서 이런 경우에는 어떤 걸 사용해야하는지,
다른 문제가 나왔을 때도 이걸 생각하며 활용할 수 있도록!

차라리 모르는 건 다른 풀이들을 보면서 공부하는 게 지금은 나에게 더 도움이 될꺼라고 생각한다.
모르는 공부해서 알면 되는거니까@!

0개의 댓글