본문 바로가기
내일배움 과제/기타 과제

알고리즘 20-추가공부

by GREEN나무 2024. 11. 25.
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/12933

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

JS

문제

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

제한 조건
n은 1이상 8000000000 이하인 자연수입니다.


계획

n을 문자배열로 만들기

문자열-> 숫자열

큰 순서대로 배열

새로운 정수 반환


참고, 풀이

split(), map()

// 정수 -> 문자열로 변경
const str = String(num);
// element를 문자열에서 정수로 변경
const mapfn = (arg) => Number(arg)
// 문자열 -> 배열로 변경
const newArr = str.split('').map(mapfn)

 

숫자 내림차순 정렬

const arr = [2, 1, 3, 10];

arr.sort(function(a, b)  {
  return b - a;
});
document.writeln(arr + '<br>'); // [10, 3, 2, 1]

숫자 배열을 문자(숫자) 바꾸기

	r_list.join('')
	// [1,2,3,4,5].join('') = '12345' 

function solution(n) {
    // 정수 -> 문자열로 변경
const str = String(n);
// element를 문자열에서 정수로 변경
const mapfn = (arg) => Number(arg)
// 문자열 -> 배열로 변경
const newArr = str.split('').map(mapfn)
// 숫자 내림차순 정렬
newArr.sort((a, b) => b - a);
// 배열을 정수로 만들어 반환
return Number(newArr.join(''));
}

 

 

코드 간략화하기

function solution(n) {
    return +([...String(n)].sort((a, b) => b - a).join(''));
}

정수 -> 문자열 : [...String(n)]

내림차순 정렬 :  배열.sort((a, b) => b - a)

문자배열을 정수로 : +(배열..join(''))


출처 

숫자 -> 문자열 : https://hianna.tistory.com/707

정수 -> 정수배열 : https://velog.io/@woody_/JS-%EC%88%AB%EC%9E%90%EB%A5%BC-%EB%B0%B0%EC%97%B4%EB%A1%9C-%EB%B3%80%EA%B2%BD

정렬 : https://hianna.tistory.com/409

배열 합치기: https://hianna.tistory.com/397

숫자 배열을 문자(숫자) 바꾸기 : https://velog.io/@dkwnrmsidkd/%EC%88%AB%EC%9E%90%EC%9D%98-%ED%95%A9-%EA%B5%AC%ED%95%98%EA%B8%B0

arr.sort((a, b) => b - a); : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

 


 

◆ C

더보기

◆ C

계획


참고, 풀이


//



코드 간략화하기

 


출처 

 

 

 

 

 

 

◆ C#

더보기

◆ C#

계획


참고, 풀이


//



코드 간략화하기

 


출처 

 

 

 

◆ C++

더보기

◆ C++

계획


참고, 풀이


//



코드 간략화하기

 


출처