알고리즘 문제풀기 (JS입문) - 문자열을 숫자로/내림차순으로 배치하기

2022. 12. 24. 01:39알고리즘 공부

728x90
SMALL

문제    / 문자열을 숫자로

문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.

제한 조건
  • s의 길이는 1 이상 5이하입니다.
  • s의 맨앞에는 부호(+, -)가 올 수 있습니다.
  • s는 부호와 숫자로만 이루어져있습니다.
  • s는 "0"으로 시작하지 않습니다.
입출력 예

예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.

function solution(s) {
    var answer = 0;
    return answer;
}

 

내가 푼 답

function solution(s) {

    answer = Number(s);

    return answer;
}

 

 

다른 사람이 푼 답

function strToInt(str){
  return str/1
  }

console.log(strToInt("-1234"));

문자열을 숫자로 변환할때 내가 푼 것 처럼 Number()를 해도 되고 + , - 0 , * , / 를 이용해도 된다.

 

그밖에도

parseInt() - 숫자로 만들  수는 있지만 정수로 바뀌기 때문에 소수점이 있을 경우 주의해야한다.  

parseFloat() - 소수점이 있는 수일 경우 이 메소드를 사용하면 된다.

 

 


문제  / 내림차순으로 배치하기

 

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

 

예시

n = 118372

answer = 873211

 

function solution(n) {
    var answer = 0;
    return answer;
}

 

 

 

내가 푼 답

function solution(n) {
    
    solution = (n + '').split('').sort().reverse();
    answer = solution.join().replace(/,/g,'')
    return Number(answer) 
    
}

n값으로 들어온 숫자를 문자열로 바꾼 뒤(n+'') 숫자 하나하나 떼어낸 뒤 .split('') 내림차순으로 정렬 .sort().reverse() 해준다.

그 후 떼어낸 숫자들을 다시 붙여준다.  .join().replace(/,/g,'') 여기서 replace에 정규식 표현을 썼는데 나중에 다시 보니

.join('')만 해줘도 됐었다ㅠㅠ

 

 

다른 사람이 푼 답

function solution(n) {
  const newN = n + "";
  const newArr = newN
    .split("")
    .sort()
    .reverse()
    .join("");

  return +newArr;
}

 

 

function solution(n) {
   
    return parseInt((n+"").split("").sort().reverse().join(""));
}

 

다른 사람이 푼 답은 결국 똑같은 구조이지만 코드 나열하는 방식이 달라서 가져와봤다.

개인적으로 아래 코드가 보기 편하지만 사람마다 세로코드가 편할지 가로코드가 편할지 다를 듯 하다.

 

 

728x90
LIST