Problem
- If the numbers in the array are sorted in an ascending order: ‘Ascending’
- 배열의 숫자가 오름차순으로 정렬되어 있다면, ‘Ascending’을 반환한다.
- If the numbers in the array are sorted in an descending order: ‘Descending’
- 배열의 숫자가 내림차순으로 정렬되어 있다면, ‘Descending’을 반환한다.
- Otherwise: ‘No’
Solution 01
function isSortedAndHow(arr) {
const str = arr.join('');
const asc = arr.sort((a, b) => a - b).join('');
const dsc = arr.sort((a, b) => b - a).join('');
if (str === asc) {
return 'Ascending';
} else if (str === dsc) {
return 'Descending';
} else {
return 'No';
}
}
isSortedAndHow([1, 2, 3, 4]); // Ascending
isSortedAndHow([1, 3, 2, 4]); // No
isSortedAndHow([4, 3, 2, 1]); // Descending
join()
: 배열의 모든 element를 결합하고, 새 문자열로 반환한다.
sort()
: 배열의 element를 정렬한 후, 그 배열을 반환한다.
Solution 02
function isSortedAndHow(arr) {
const str = arr.join('');
const asc = arr.sort((a, b) => a - b).join('');
const dsc = arr.sort((a, b) => b - a).join('');
return str === asc ? 'Ascending' : str === dsc ? 'Descending' : 'No';
}
isSortedAndHow([1, 2, 3, 4]); // Ascending
isSortedAndHow([1, 3, 2, 4]); // No
isSortedAndHow([4, 3, 2, 1]); // Descending