[프로그래머스 lev1/JS] 문자열 내 마음대로 정렬하기

woolee의 기록보관소·2022년 11월 8일
0

알고리즘 문제풀이

목록 보기
57/178

문제 출처

프로그래머스 lev1 - 문자열 내 마음대로 정렬하기

문제

나의 풀이

내림차순

arr.sort(function (a, b) {
    if (a > b) return -1;
    else if (b > a) return 1;
    else return 0;
  });
function solution(strings, n) {

  strings.sort((a,b) => { // 오름차순 문자 정렬 
    if (a[n] > b[n]) return 1;
    else if (b[n] > a[n]) return -1;
    else {
			// return a.localeCompare(b); 
      let i=0; 
      while (i<a.length && i<b.length) {
        if (a[i] > b[i]) return 1;
        else if (b[i] > a[i]) return -1;
        i++; 
      }
    }
  })

  return strings;
}

console.log(solution(["abce", "abcd", "cdx"], 2));

다른 풀이

localCompare() : 사전순 정렬해주는 내장 메서드인듯?

function solution(strings, n) {
  // strings 배열
  // n 번째 문자열 비교
  return strings.sort((s1, s2) => s1[n] === s2[n] ? s1.localeCompare(s2) : s1[n].localeCompare(s2[n]));
}

console.log(solution(["abce", "abcd", "cdx"], 2));

비교 문자열을 앞으로 빼서 얘를 통해서 정렬하고,
그 비교 문자열을 ''로 지워주면 끝

function solution(strings, n) {
  var answer = [];
  for (var i = 0; i < strings.length; i++) {
      var chu = strings[i][n];
      strings[i] = chu + strings[i];
  }
  strings.sort();
  for (var j = 0; j < strings.length; j++) {
      strings[j] = strings[j].replace(strings[j][0],"");
      answer.push(strings[j])
  }

  return answer;
}

console.log(solution(["abce", "abcd", "cdx"], 2));
profile
https://medium.com/@wooleejaan

0개의 댓글