2022. 12. 24. 01:39ㆍ알고리즘 공부
문제 / 문자열을 숫자로
문자열 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(""));
}
다른 사람이 푼 답은 결국 똑같은 구조이지만 코드 나열하는 방식이 달라서 가져와봤다.
개인적으로 아래 코드가 보기 편하지만 사람마다 세로코드가 편할지 가로코드가 편할지 다를 듯 하다.
'알고리즘 공부' 카테고리의 다른 글
알고리즘 문제 풀기 (JS입문) - 직사각형 별 찍기 (0) | 2022.12.26 |
---|---|
알고리즘 문제풀기 (JS입문) - 양수 음수 더하기 (0) | 2022.12.24 |
알고리즘 문제 풀기 (JS입문) - 두 정수의 합 / Math.abs() 메소드 (0) | 2022.12.23 |
알고리즘 문제풀이 (JS입문) - 콜라츠 추측 (1) | 2022.12.21 |
알고리즘 문제풀기 (JS입문) - 부족한 금액 계산하기 (0) | 2022.12.19 |