์ด๋ค ์ ์๋ค์ด ์์ต๋๋ค. ์ด ์ ์๋ค์ ์ ๋๊ฐ์ ์ฐจ๋ก๋๋ก ๋ด์ ์ ์ ๋ฐฐ์ด absolutes์ ์ด ์ ์๋ค์ ๋ถํธ๋ฅผ ์ฐจ๋ก๋๋ก ๋ด์ ๋ถ๋ฆฌ์ธ ๋ฐฐ์ด signs๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์ค์ ์ ์๋ค์ ํฉ์ ๊ตฌํ์ฌ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
function solution(absolutes, signs) {
let realArr = [];
for(let i = 0; i < absolutes.length; i++){
if(signs[i]){
realArr.push(absolutes[i])
}
else{
realArr.push(absolutes[i] * -1)
}
}
return realArr.reduce((acc, cur) => acc + cur);
}
function solution(absolutes, signs) {
return absolutes.reduce((acc, val, i) => acc + (val * (signs[i] ? 1 : -1)), 0);
}
์ฒ์์ reduce
๋ฅผ ์ฌ์ฉํด์ ํ ์ ์์ง ์์๊น ์๊ฐํ๊ธด ํ๋๋ฐ, reduce
์ ์ธ์๋ก acc
, cur
๋ง๊ณ ๋ index
๋ฒํธ๋ ๋ฐ์ ์ ์๋์ง ๊ธด๊ฐ๋ฏผ๊ฐํด์ ์๋ํ์ง ๋ชป ํ๋ค ใ
ใ
์ ์ฝ๋์์ reduce
์ ๋ง์ง๋ง 0
์ด ์๋ฏธํ๋ ๊ฒ
initialValue
: acc
์ ์ด๊ธฐ๊ฐ (optional) ์ฆ ์ ์ฝ๋๋ signs[i]
์ ๊ฐ์ด true
๋ฉด val(cur)
์ 1
์ ๊ณฑํ๊ณ false
๋ฉด -1
์ ๊ณฑํด์(์ฆ ์์๋ก ๋ง๋ค์ด์) acc
์ ๋ํด์ฃผ๋ ๊ฒ
ํ๋ก๊ทธ๋๋จธ์ค ๋ชจ๋ฐ์ผ์ ๊ฐ์ธ์ ๋ณด ๋ณดํธ๋ฅผ ์ํด ๊ณ ์ง์๋ฅผ ๋ณด๋ผ ๋ ๊ณ ๊ฐ๋ค์ ์ ํ๋ฒํธ์ ์ผ๋ถ๋ฅผ ๊ฐ๋ฆฝ๋๋ค.
์ ํ๋ฒํธ๊ฐ ๋ฌธ์์ด phone_number๋ก ์ฃผ์ด์ก์ ๋, ์ ํ๋ฒํธ์ ๋ท 4์๋ฆฌ๋ฅผ ์ ์ธํ ๋๋จธ์ง ์ซ์๋ฅผ ์ ๋ถ *์ผ๋ก ๊ฐ๋ฆฐ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ ํจ์, solution์ ์์ฑํด์ฃผ์ธ์.
์ ํ ์กฐ๊ฑด
function solution(phone_number) {
let answer = ""
let secretNum = phone_number.slice(0, -4).length
for(let i = 0; i < secretNum; i++){
answer += "*"
}
return answer + phone_number.slice(-4) ;
}
//์ ๊ท์ ์ฌ์ฉํ ์ฝ๋
function hide_numbers(s){
return s.replace(/\d(?=\d{4})/g, "*");
}
// repeat๊ณผ slice๋ฅผ ์ฌ์ฉํ ์ฝ๋
function hide_numbers(s){
var result = "*".repeat(s.length - 4) + s.slice(-4);
return result;
}
์ ๊ท์์ ์ ์ฐ๋ฉด ๊ฐ๊ฒฐํด์ง๋๊ตฌ๋!!!...
ํ์ง๋ง replace
๋ก ์ธํด ์คํ ์ ์๋๊ฐ repeat
, slice
๋ฅผ ์ฌ์ฉํ ๋ ๋ณด๋ค 3๋ฐฐ ์ ๋ ๋๋ฆฌ๋ค๋ ๋๊ธ๋ค๋ ๋ณด์๋ค.
slice
, repeat
์ ์ฌ์ฉํ๋๊ฒ ๋ ๋ณด๊ธฐ์๋ ์ง๊ด์ ์ผ ์๋ ์๋ค๊ณ ! repeat
์ ์กด์ฌ ๊ธฐ์ตํ๊ธฐ!!