728x90
[문제]
[풀이 코드]
function solution(X, Y) {
var answer = '';
X = X.split("");
Y = Y.split("");
for(let i = 9; i >= 0; i--){
const num = X.filter((x) => x == i);
const num2 = Y.filter((y) => y == i);
if(num.length !=0 && num < num2){
answer += String(num);
}
else if(num2.length !=0 && num >= num2){
answer += String(num2);
}
}
if(answer.length == 0){
answer += -1;
}
answer = answer.split(',').join('');
if(Number(answer)== 0){
answer = "0";
}
return answer;
}
[해설]
우선 X,Y의 자릿수를 나눠야하기 때문에 둘다 split함수로 배열로 나눠준다. 그리고 각각의 수의 필터를 거는데 0부터 9의 숫자를 각각의 X,Y로 확인을 한뒤 겹치는 숫자가 있다면 if와 else if로 확인을 한 뒤 answer 에 넣어준다. 그리고 answer의 길이가 0이면 없다는 뜻이므로 answer에 -1을 부여해주고 우리는 +연산자로 숫자를 넣었기 때문에 "," 를 빼주고 다시 합쳐주기 위해서 split(',').join('')으로 콤마 부분을 빼주고 다시 합쳐주게 하였다. 그리고 answer을 숫자로봤을 때 00이나 000등 0의 숫자가 나오면 answer을 0으로 바꿔주고 리턴해주었다.
Level 1의 문제치고 상당히 어려웠던 것 같다.
'코딩 > 코딩테스트' 카테고리의 다른 글
[프로그래머스/JS] LEVEL1 햄버거 만들기 (0) | 2024.07.03 |
---|---|
[프로그래머스/JS] 체육복 (0) | 2024.06.28 |
[프로그래머스/JS] 로또의 최고순위와 최저순위 (0) | 2024.06.25 |
[프로그래머스/JS] 기사단원의 무기 (0) | 2024.06.24 |
[프로그래머스/JS] 덧칠하기 (0) | 2024.06.21 |