๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm

[Algorithm] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv.1 : ์ œ์ผ ์ž‘์€ ์ˆ˜ ์ œ๊ฑฐ

by ์ฝ”๋”ฉ๊ณต์ฑ… 2022. 10. 31.
๋ฐ˜์‘ํ˜•

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv.1 : ์ œ์ผ ์ž‘์€ ์ˆ˜ ์ œ๊ฑฐํ•˜๊ธฐ

์ •์ˆ˜๋ฅผ ์ €์žฅํ•œ ๋ฐฐ์—ด, arr์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•œ ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•˜์‹œ์˜ค.

- ์กฐ๊ฑด :
๋‹จ, ๋ฆฌํ„ดํ•˜๋ ค๋Š” ๋ฐฐ์—ด์ด ๋นˆ ๋ฐฐ์—ด์ธ ๊ฒฝ์šฐ์—๋Š” ๋ฐฐ์—ด์— -1 ์„ ์ฑ„์›Œ์„œ ๋ฆฌํ„ด.
์˜ˆ๋ฅผ ๋“ค์–ด arr์ด [4, 3, 2, 1]์ธ ๊ฒฝ์šฐ๋Š” [4, 3, 2]๋ฅผ ๋ฆฌํ„ดํ•˜๊ณ , [10]์ด๋ฉด [-1]์„ ๋ฆฌํ„ด.
์ œํ•œ ์กฐ๊ฑด : arr์€ ๊ธธ์ด 1 ์ด์ƒ์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
์ธ๋ฑ์Šค i, j ์— ๋Œ€ํ•ด i โ‰  j์ด๋ฉด arr[i] โ‰  arr[j].

"solotuin.js" ๋ฌธ์ œ ํ’€์ด

๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ฐพ๊ณ , ์ฐพ์€ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•ด๋ณด์ž.

const erase = [4, 3, 2, 1];

function solution(arr) {
    arr.splice( arr.findIndex((a) => a == Math.min(...arr) ), 1 );

    return arr.length <= 1 ? arr = [-1] : arr;
}
console.log(solution(erase));

์ƒ์ˆ˜ erase์— [4, 3, 2, 1]์ด ์ €์žฅ๋˜์–ด ์žˆ๊ณ , erase == arr
( arr.findIndex((a) => a == Math.min(...arr) ), 1 ); : [4,3,2,1] ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์ˆซ์ž 1์„ ๋ฐ˜ํ™˜
arr.splice๋กœ ๊ฐ์‹ธ์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ๊ฐ’์„ ์ œ๊ฑฐํ•œ ํ›„ ๋ฐ˜ํ™˜ํ•จ. ์ฆ‰ 1์ด ์ถœ๋ ฅ๋จ.
return arr.length <= 1 (X) / arr = [-1](O) : arr;

๋‹ค๋ฅธ ํ’€์ด ๋ฐฉ๋ฒ•

# 1) Math.min( )๊ณผ filter( ), ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

const erase = [4, 3, 2, 1];

function solution(arr) {
    const min = Math.min(...arr);

    return arr.length !== 1 ? arr.filter( i => i !== min ) : [-1];
}
console.log(solution(erase))

์ƒ์ˆ˜ min์— ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ €์žฅํ•จ. 1์ด ์ €์žฅ๋จ.
4 !== 1 ์ด๋ฏ€๋กœ, arr.filter(i => i !== min)๋กœ 1์„ ์ œ์™ธํ•œ ๊ฐ’๋งŒ์„ ๋‚จ๊ธด๋‹ค.


apply( )์™€ indexOf( ), if๋ฌธ์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

const erase = [4, 3, 2, 1];

function solution(arr) {
    let a = Math.min.apply( null, arr );
    arr.splice( arr.indexOf(a), 1 );

    if( arr[0] == undefined )
        return [-1];
    else
        return arr;
}
console.log(solution(erase))
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€


Reference Book

JavaScript
HTML
CSS
๊ด‘๊ณ  ์ค€๋น„์ค‘์ž…๋‹ˆ๋‹ค.