๋ ์ ์ X, Y์ ์์์ ์๋ฆฌ์์ ๊ณตํต์ผ๋ก ๋ํ๋๋ ์ ์ k(0 โค k โค 9)๋ค์ ์ด์ฉํ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์ ์๋ฅผ ๋ ์์ ์ง๊ฟ์ด๋ผ ํฉ๋๋ค(๋จ, ๊ณตํต์ผ๋ก ๋ํ๋๋ ์ ์ ์ค ์๋ก ์ง์ง์ ์ ์๋ ์ซ์๋ง ์ฌ์ฉํฉ๋๋ค). X
, Y
์ ์ง๊ฟ์ด ์กด์ฌํ์ง ์์ผ๋ฉด, ์ง๊ฟ์ -1์
๋๋ค. X
, Y
์ ์ง๊ฟ์ด 0์ผ๋ก๋ง ๊ตฌ์ฑ๋์ด ์๋ค๋ฉด, ์ง๊ฟ์ 0์
๋๋ค.
์๋ฅผ ๋ค์ด, X
= 3403์ด๊ณ Y
= 13203์ด๋ผ๋ฉด, X
์ Y
์ ์ง๊ฟ์ X
์ Y
์์ ๊ณตํต์ผ๋ก ๋ํ๋๋ 3, 0, 3์ผ๋ก ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์ ์์ธ 330์
๋๋ค. ๋ค๋ฅธ ์์๋ก X
= 5525์ด๊ณ Y
= 1255์ด๋ฉด X
์ Y
์ ์ง๊ฟ์ X
์ Y
์์ ๊ณตํต์ผ๋ก ๋ํ๋๋ 2, 5, 5๋ก ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์ ์์ธ 552์
๋๋ค(X
์๋ 5๊ฐ 3๊ฐ, Y
์๋ 5๊ฐ 2๊ฐ ๋ํ๋๋ฏ๋ก ๋จ๋ 5 ํ ๊ฐ๋ ์ง ์ง์ ์ ์์ต๋๋ค.)
๋ ์ ์ X
, Y
๊ฐ ์ฃผ์ด์ก์ ๋, X
, Y
์ ์ง๊ฟ์ returnํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
X
, Y
์ ๊ธธ์ด(์๋ฆฟ์) โค 3,000,000์
๋๋ค.X
, Y
๋ 0์ผ๋ก ์์ํ์ง ์์ต๋๋ค.X
, Y
์ ์ง๊ฟ์ ์๋นํ ํฐ ์ ์์ผ ์ ์์ผ๋ฏ๋ก, ๋ฌธ์์ด๋ก ๋ฐํํฉ๋๋ค.X | Y | result |
---|---|---|
"100" | "2345" | "-1" |
"100" | "203045" | "0" |
"100" | "123450" | "10" |
"12321" | "42531" | "321" |
"5525" | "1255" | "552" |
์ ์ถ๋ ฅ ์ #1
X
, Y
์ ์ง๊ฟ์ ์กด์ฌํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ "-1"์ returnํฉ๋๋ค.์ ์ถ๋ ฅ ์ #2
X
, Y
์ ๊ณตํต๋ ์ซ์๋ 0์ผ๋ก๋ง ๊ตฌ์ฑ๋์ด ์๊ธฐ ๋๋ฌธ์, ๋ ์์ ์ง๊ฟ์ ์ ์ 0์
๋๋ค. ๋ฐ๋ผ์ "0"์ returnํฉ๋๋ค.์ ์ถ๋ ฅ ์ #3
X
, Y
์ ์ง๊ฟ์ 10์ด๋ฏ๋ก, "10"์ returnํฉ๋๋ค.์ ์ถ๋ ฅ ์ #4
X
, Y
์ ์ง๊ฟ์ 321์
๋๋ค. ๋ฐ๋ผ์ "321"์ returnํฉ๋๋ค.์ ์ถ๋ ฅ ์ #5
function solution(X, Y) {
let answer = ''
X = X.split("")
Y = Y.split("")
// ํด๋น ์ซ์๊ฐ ์ผ๋ง๋ ์๋์ง ํ์ธํด์ ๋ ๋ฎ์๋งํผ ์ ๋ต ๋ฌธ์์ด์ ๋ํจ
for(let i = 0 ; i < 10 ; i ++) {
const curX = X.filter(a => Number(a) === i).length
const curY = Y.filter(a => Number(a) === i).length
answer+=String(i).repeat(Math.min(curX, curY))
}
if(answer === '') return "-1"
if(Number(answer) === 0) return "0"
// ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํด ๋ฐํํ๋ฉด ์ต๋๊ฐ
return answer.split("").sort((a,b) => Number(b)-Number(a)).join("")
}
์ด๋ฏธ ์๊ณ ๊ณ์ค ๊ฒ ๊ฐ์๋ฐ ๊ฐ์ ์ฝ๋ ๋จ๊น๋๋ค!
๋ฐ๋ณต๋ฌธ์ ์ฒ์๋ถํฐ ํฐ์ซ์๋ก ์์ํ๋ฉด
๋ฆฌํดํ ๋ sort๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๋๋ ์ฑ๋ฅํฅ์์ ๋์๋ ๊ฒ ๊ฐ์ต๋๋ค.
for (let i = 9; i >= 0; i--) { ... }
return answer;