Post

프로그래머스 LV1 "문자열 내림차순으로 배치하기"

프로그래머스 Lv1 문자열 내림차순으로 배치하기

기초부터 다시 공부를 하기위해 프로그래머스 라는 사이트에서 코딩테스트를 LV0 부터 가능한곳까지 못하는곳은 레퍼런스를 찾아가며 풀어보려고 합니다.

매일 1개의 풀이를 하고 그 풀이에대한 나의 생각 및 해석을 적어보려합니다.

오늘은 LV1 열여섯번째 문제 ‘문자열 내림차순으로 배치하기’ 문제입니다.

프로그래머스 이미지

위 이미지가 프로그래머스 코딩문제입니다.

문제는 매개변수로 s이라는 문자열이 주어지면 s안에 있는 문자열을 내림차순으로 정렬해 출력하는 간단한 문제입니다.

오늘 문제에서는 간단한 메서드만으로 문제를 해결해 보겠습니다.

그럼 오늘의 문제를 한번 풀어보겠습니다.

기본 세팅 코드도 알아보겠습니다.

1
2
3
4
function solution(s) {
    var answer = '';
    return answer;
}

기본 세팅 코드는 매개변수 s으로 문자열이 주어지고 있고, 함수 안에는 answer이라는 빈 문자열의 변수가 선언되어 리턴되는 간단한 기본 세팅 코드입니다.

이 문제에서 핵심은 문자열을 내림차순으로 정렬하는 것입니다. 이를 해결하기 위해선 다음과 같은 과정을 거칩니다.

  1. 먼저 문자열을 각 문자로 분할합니다.
  2. 분할된 문자열을 정렬합니다.
  3. 정렬된 문자열을 다시 하나의 문자열로 합칩니다.

위 과정에서 필요한 메서드들은 split(),reverse(),join() 입니다. 이전 포스팅에서 설명한적이 있지만 이번 포스팅에서도 간단하게 알아보고 문제를 풀어보겠습니다.

split()

split() 메서드는 문자열을 특정 구분자를 기준으로 분할하여 배열로 반환합니다. 이 때, 원본 문자열은 변경되지 않습니다. 구분자를 지정하지 않으면 문자열 전체가 하나의 요소로 포함된 배열을 반환합니다.

1
2
3
const str = "Hello, world!";
const arr = str.split(','); // 쉼표(,)를 기준으로 분할하여 배열로 반환
console.log(arr); // ["Hello", " world!"]

reverse()

reverse() 메서드는 배열의 요소들을 역순으로 변경합니다. 이 때, 배열 자체가 변경되며, 역순으로 뒤집힌 새로운 배열을 반환합니다.

1
2
3
const arr = [1, 2, 3, 4, 5];
arr.reverse(); // 배열을 역순으로 변경
console.log(arr); // [5, 4, 3, 2, 1]

join()

join() 메서드는 배열의 모든 요소를 하나의 문자열로 결합합니다. 이 때, 배열의 각 요소 사이에는 구분자를 넣을 수 있으며, 구분자를 지정하지 않으면 쉼표(,)가 기본적으로 사용됩니다.

1
2
3
const arr = ["apple", "banana", "orange"];
const str = arr.join(', '); // 배열의 각 요소를 쉼표와 공백으로 구분하여 하나의 문자열로 결합
console.log(str); // "apple, banana, orange"

이렇게 메서드들의 간단한 설명과 사용 예시 코드를 보여드렸습니다. 그럼 다시 문제를 해결해 보겠습니다.

1
2
3
4
5
function solution(s) {
  var answer = '';
  answer = s.split('').sort().reverse().join('');
  return answer;
}

이 함수는 주어진 문자열을 다음과 같은 과정을 거쳐 내림차순으로 정렬된 문자열을 반환합니다.

먼저, 주어진 문자열을 각 문자 단위로 분할합니다. 이 때, 각 문자는 배열의 요소로 들어가게 됩니다. 예를 들어, “hello”라는 문자열이 주어졌을 때, 이는 배열 [“h”, “e”, “l”, “l”, “o”]로 분할됩니다.

다음으로, 분할된 문자열을 알파벳 역순으로 정렬합니다. 이는 문자열을 유니코드 순서로 정렬하는 것으로, “e”, “h”, “l”, “l”, “o” 순으로 정렬됩니다.

마지막으로, 정렬된 문자열을 하나의 문자열로 결합합니다. 이 때, 각 문자열은 구분자 없이 이어붙입니다. 따라서 “olleh”라는 문자열이 생성됩니다.

따라서 이 함수는 문자열을 받아와서 각 문자를 역순으로 정렬하여 하나의 문자열로 결합한 후 반환합니다.

문제의 식이 완성되었으니 프로그래머스에 한번 확인해보겠습니다.

프로그래머스 이미지

성공이네요!

오늘은 프로그래머스 LV1 ‘문자열 내림차순으로 배치하기’ 문제의 대해서 알아봤습니다.

제 방법이 꼭 정답은 아니니 그저 이런방법도 있구나하고 참고용으로만 봐주시면 감사하겠습니다.

감사합니다.

This post is licensed under CC BY 4.0 by the author.