๋ ์ ์ x, y์์ ๊ณตํต์ผ๋ก ๋ํ๋๋ ์ ์์ ์ง๊ฟ์ ์ฐพ๊ณ , ์ง๊ฟ์ ์ต๋๊ฐ์ ๊ตฌํ์ฌ ๋ฌธ์์ด๋ก ๋ฐํํ๋ ๋ฌธ์
์กฐ๊ฑด 1. ์ง๊ฟ์ด ์กด์ฌํ์ง ์์ผ๋ฉด "-1"์ ๋ฐํ
์กฐ๊ฑด 2. ์ง๊ฟ์ด 0์ผ๋ก๋ง ๊ตฌ์ฑ๋๋ค๋ฉด "0"์ ๋ฐํ
์กฐ๊ฑด 3. ๋ ์ ์๋ 0์ผ๋ก ์์ํ์ง ์๋๋ค.
์กฐ๊ฑด 4. ์ง๊ฟ์ ์๊ฐ ๋งค์ฐ ํด ์ ์์ผ๋ฏ๋ก ๋ฌธ์์ด ํํ๋ก ๋ฐํํ๋ค.
์) ๋ง์ฝ X = 5123, Y = 81530 ์ด๋ผ๋ฉด ์ง๊ฟ = [5, 1, 3]
๋ฐํ๊ฐ : ์ต๋ ํฐ ๊ฐ์ ๋ฌธ์์ด( "531" )
์ ๊ทผ ๋ฐฉ๋ฒ
์ฐ์ ๋ ์์ ๊ฐ๊ฐ์ ์๋ฆฌ์๋ฅผ ๋น๊ตํ๊ธฐ ์ํด ๋ฌธ์์ด๋ก ๋ณํํ๊ณ ""์ ๊ธฐ์ค์ผ๋ก ๋๋ ํ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ์๋ค.
(์ต์ข ์ ์ผ๋ก ๊ฐ์ฅ ํฐ ์๋ฅผ ๊ตฌํ๋ ๊ฒ์ด๋ฏ๋ก ๋จผ์ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ)
const xArr = X.toString().split("").sort((a, b) => b - a); const yArr = Y.toString().split("").sort((a, b) => b - a);โ
์) XArr = [5, 3, 2, 1], YArr = [8, 5, 3, 1, 0]
๋ค์์ผ๋ก sliding window๋ฐฉ์์ผ๋ก ๋ ์๋ฅผ ๋น๊ตํ์๋ค.while(xIndex < xArr.length && yIndex !== yArr.length){ if(xArr[xIndex] > yArr[yIndex]) xIndex++; else if(xArr[xIndex] < yArr[yIndex]) yIndex++; else{ answer += xArr[xIndex]; xIndex++; yIndex++; } }
๋ง์ง๋ง์ผ๋ก ๊ตฌํ ๊ฐ์ ์์ธ์ฒ๋ฆฌ๋ฅผ ์งํํ์๋ค.if(!answer) return "-1"; return Number(answer) === 0 ? "0" : answer;
answer = "" ์ด๋ฉด '-1' ๋ฐํ
answer = "0000" ์ฒ๋ผ 0์ผ๋ก๋ง ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ Number(answer) === 0 ์ธ ๊ฒฝ์ฐ "0" ๋ฐํ
function solution(X, Y) {
var answer = '';
let xIndex = 0;
let yIndex = 0;
const xArr = X.toString().split("").sort((a, b) => b - a);
const yArr = Y.toString().split("").sort((a, b) => b - a);
while(xIndex < xArr.length && yIndex !== yArr.length){
if(xArr[xIndex] > yArr[yIndex]) xIndex++;
else if(xArr[xIndex] < yArr[yIndex]) yIndex++;
else{
answer += xArr[xIndex];
xIndex++;
yIndex++;
}
}
if(!answer) return "-1";
return Number(answer) === 0 ? "0" : answer;
}
'์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javascript] ์ค์ ๋๋น ๋ชจ์๊ณ ์ฌ 1์ฐจ 3๋ฒ (0) | 2022.07.13 |
---|---|
[Javascript] ์ค์ ๋๋น ๋ชจ์๊ณ ์ฌ 1์ฐจ 2๋ฒ (0) | 2022.07.13 |
[Javascript] ์ต์๊ฐ ๋ง๋ค๊ธฐ (12941) (0) | 2022.06.25 |
[Javascript] ์ค ์๋ ๋ฐฉ๋ฒ (12936) (0) | 2022.06.25 |
[Javascript] ์ ํ์ ์๊ฐ ์ด๋ (12980) (0) | 2022.06.25 |