프로그래머스 LV1 "문자열 내림차순으로 배치하기"
프로그래머스 Lv1 문자열 내림차순으로 배치하기
기초부터 다시 공부를 하기위해 프로그래머스 라는 사이트에서 코딩테스트를 LV0 부터 가능한곳까지 못하는곳은 레퍼런스를 찾아가며 풀어보려고 합니다.
매일 1개의 풀이를 하고 그 풀이에대한 나의 생각 및 해석을 적어보려합니다.
오늘은 LV1 열여섯번째 문제 ‘문자열 내림차순으로 배치하기’ 문제입니다.
위 이미지가 프로그래머스 코딩문제입니다.
문제는 매개변수로 s
이라는 문자열이 주어지면 s
안에 있는 문자열을 내림차순으로 정렬해 출력하는 간단한 문제입니다.
오늘 문제에서는 간단한 메서드만으로 문제를 해결해 보겠습니다.
그럼 오늘의 문제를 한번 풀어보겠습니다.
기본 세팅 코드도 알아보겠습니다.
1
2
3
4
function solution(s) {
var answer = '';
return answer;
}
기본 세팅 코드는 매개변수 s
으로 문자열이 주어지고 있고, 함수 안에는 answer
이라는 빈 문자열의 변수가 선언되어 리턴되는 간단한 기본 세팅 코드입니다.
이 문제에서 핵심은 문자열을 내림차순으로 정렬하는 것입니다. 이를 해결하기 위해선 다음과 같은 과정을 거칩니다.
- 먼저 문자열을 각 문자로 분할합니다.
- 분할된 문자열을 정렬합니다.
- 정렬된 문자열을 다시 하나의 문자열로 합칩니다.
위 과정에서 필요한 메서드들은 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 ‘문자열 내림차순으로 배치하기’ 문제의 대해서 알아봤습니다.
제 방법이 꼭 정답은 아니니 그저 이런방법도 있구나하고 참고용으로만 봐주시면 감사하겠습니다.
감사합니다.