코딩테스트 39일차
정수 내림차순으로 배치하기
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
function solution(n) {
const digits = Array.from(String(n), Number);
const sortedDigits = digits.sort((a, b) => b - a);
const answer = parseInt(sortedDigits.join(''));
return answer;
}
✏️풀이
digits 변수: n을 문자열로 변환한 후 Array.from() 메서드를 사용하여 각 자릿수를 요소로 가지는 배열로 변환합니다.
Array.from(String(n), Number)은 n을 문자열로 변환하고, 문자열을 배열로 변환하는데, 각 요소는 Number() 함수를 사용하여 숫자로 변환됩니다.
sortedDigits 변수: digits 배열을 내림차순으로 정렬하여 큰 순서대로 정렬된 배열을 생성합니다.
digits.sort((a, b) => b - a)는 sort() 메서드를 사용하여 digits 배열을 내림차순으로 정렬하는데, 비교 함수 (a, b) => b - a를 사용하여 각 요소를 비교합니다. 이를 통해 큰 순서대로 정렬됩니다.
answer 변수: sortedDigits 배열을 문자열로 변환한 후 parseInt() 함수를 사용하여 새로운 정수를 생성합니다.
sortedDigits.join('')는 sortedDigits 배열의 요소들을 빈 문자열을 구분자로 사용하여 하나의 문자열로 결합합니다.
parseInt() 함수를 사용하여 문자열을 정수로 변환합니다.
answer를 반환합니다. 이는 주어진 정수 n의 각 자릿수를 큰 순서대로 정렬하여 새로운 정수를 반환하는 결과입니다.
완주하지 못한 선수
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
function solution(participant, completion) {
participant.sort();
completion.sort();
for (let i = 0; i < participant.length; i++) {
if (participant[i] !== completion[i]) {
return participant[i];
}
}
}
✏️풀이
participant와 completion 배열을 사전순으로 정렬합니다.
participant.sort()와 completion.sort()를 사용하여 각 배열을 오름차순으로 정렬합니다.
반복문을 사용하여 participant 배열을 순회하며 완주하지 못한 선수를 찾습니다.
for 반복문을 사용하여 participant 배열의 각 요소를 순회합니다.
i 변수는 반복문의 인덱스로 사용됩니다.
조건문을 사용하여 현재 순회 중인 선수의 이름이 completion 배열의 동일한 위치에 있는 이름과 다른지 확인합니다.
if (participant[i] !== completion[i])을 사용하여 현재 순회 중인 선수의 이름과 completion[i]의 이름을 비교합니다.
이름이 다르다면, 해당 선수는 완주하지 못한 선수입니다.
완주하지 못한 선수를 찾았을 때, 해당 선수의 이름을 반환합니다.
return participant[i]을 사용하여 완주하지 못한 선수의 이름을 반환합니다.
반복문이 종료되고 여기까지 도달하지 않았다면, 모든 선수가 완주한 경우입니다.