알고리즘(영어: algorithm), 셈법은 수학과 컴퓨터과학, 언어학 또는 엮인 분야에서 어떠한 문제를 풀어내기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것, 계산을 실행하기 위한 단계적 절차를 의미한다. 즉, 문제풀이에 필요한 계산절차 또는 처리과정의 순서를 뜻한다. 프로그램명령어의 집합을 의미하기도 한다.
프로그래머스의 '정수 내림차순으로 배치하기' 문제 입니다.
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
n은 1이상 8000000000 이하인 자연수입니다.
function solution(n) {
const string=n.toString();
const newArr=string.split('')
const arr=newArr.sort()
const reverseArr=arr.reverse();
const stringResult=reverseArr.join('');
const result=Number(stringResult)
return result;
}
맨 처음 풀었던 저의 풀이 방식 입니다.
이보다 처음에는 메서드를 가급적 사용하지 않고 풀고싶어 for문을 돌면서 인덱스 번호를 비교하면서 값이 적은 경우 뒤로 보내는 로직을 짜보았지만 그러면 너무 복잡하다는 생각에 조금 접근성이 좋은 방식으로 풀어가기 시작했습니다 :-)
const n=118372 const string=n.toString(); console.log(string) const newArr=string.split('') const arr=newArr.sort() console.log(arr); const reverseArr=arr.reverse(); console.log(reverseArr) const result=reverseArr.join(''); console.log(result) const rearResult=Number(result) console.log(rearResult)
문제를 다 풀고서도 코드가 너무 긴가?라는 고민에 메서드를 찾아보니 sort를 이용해도 좋을거 같다는 생각에
sort를 이용해서도 풀어보았습니다 :-) 그러면 로직이 비교적 전보다 간결해집니다!