[프로그래머스] level1-문자열 내림차순으로 배치하기

JIEUN YANG·2022년 10월 10일
0

알파벳의 아스키코드 값을 비교한 뒤 내림차순으로 문자열을 정렬하는 문제로,
reverse(), sort(), join() 함수를 활용하여 해결할 수 있다.
나는 이렇게 작성하였다.

function solution(s) {
    s = [...s]
    return s.sort().reverse().join('') 
   	// s 를 배열로 바꿔주는 대신 split() 메서드를 활용하여 그 역할을 수행할 수 있다.
    // s.split('').sort().reverse().join('')
}
  • sort() 메서드는 배열의 요소를 정렬한 뒤 정렬된 배열을 반환하기 때문에 문자열인 입력값 s를 배열로 변환해야 한다.
  • 문자열은 유니코드를 기준으로 오름차순 정렬되며 내림차순 정렬을 위해 reverse() 메서드가 필요하다.
  • 정렬된 데이터는 배열형식이기 때문에 join() 메서드를 사용하여 최종 답은 문자열로 return 해줘야 한다.


Array.prototype.sort()

배열의 요소를 '유니코드'에 따라 정렬한 뒤, 그 배열을 반환. 따라서, 원본 배열의 변화를 가져온다.

숫자배열의 경우 문자열로 파싱한 뒤 정렬되기 때문에 [2, 12].sort() 수행 시,
[12, 2] 순으로 정렬되는 것에 주의해야 한다.


Array.prototype.reverse()

배열 순서를 반전하고 변형된 원본 배열을 반환한다.

[3, 0, 1].reverse() => [1, 0, 3]

  • 이 매서드를 생각해내지 못해서 처음에 삽질(?)을 조금 했다..
  • ***기억하기

Array.prototype.join()

모든 배열의 요소를 연결하여 하나의 문자열로 반환해준다.

join() 메서드의 파라미터는 구분자의 기준 을 나타내며,

1) 생략한다면 배열의 요소들이 쉼표로 구분된다.

[3, 12, 5, 9, 77].join() // expected : '3,12,5,9,77'

2) 빈 문자열('')을 구분 값으로 전달하면 요소들을 구분 없이 연결한다.

[3, 12, 5, 9, 77].join('') // expected : '3125977'





사고력을 향상시키기 위해 시작한 알고리즘 풀이는 자바스크립트의 기본 함수들도 학습하게 해주고 있다. 이전에는 함수를 공부할 때 타인의 블로그들을 참조하곤 했으나 최근에는 js의 공식문서 mdn을 활용한다. 공식문서가 얼마나 잘 정리되어 있는지를 깨닳음과 동시에 함수를 사용할 수 있는 데이터의 형태와 함수가 반환하는 데이터 형태를 잘 익히는 것이 중요하다는 생각이 든다.

기본과 기초를 기록하며 느리지만 천천히 그리고 꾸준히..!

참고 사이트

mdn

profile
violet's development note

0개의 댓글

관련 채용 정보