[ JavaScript ์•Œ๊ณ ๋ฆฌ์ฆ˜ (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค)] ์Œ์–‘๋”ํ•˜๊ธฐ

2023. 8. 14. 23:42ใ†5. Algorithm

  • ์Œ์–‘๋”ํ•˜๊ธฐ

 

1. ๋ฌธ์ œ์„ค๋ช…

์–ด๋–ค ์ •์ˆ˜๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ •์ˆ˜๋“ค์˜ ์ ˆ๋Œ“๊ฐ’์„ ์ฐจ๋ก€๋Œ€๋กœ ๋‹ด์€ ์ •์ˆ˜ ๋ฐฐ์—ด absolutes์™€ ์ด ์ •์ˆ˜๋“ค์˜ ๋ถ€ํ˜ธ๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๋‹ด์€ ๋ถˆ๋ฆฌ์–ธ ๋ฐฐ์—ด signs๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์‹ค์ œ ์ •์ˆ˜๋“ค์˜ ํ•ฉ์„ ๊ตฌํ•˜์—ฌ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

2. ์ž…์ถœ๋ ฅ ์˜ˆ

3. ์ œํ•œ์‚ฌํ•ญ

  • absolutes์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 1,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
    • absolutes์˜ ๋ชจ๋“  ์ˆ˜๋Š” ๊ฐ๊ฐ 1 ์ด์ƒ 1,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • signs์˜ ๊ธธ์ด๋Š” absolutes์˜ ๊ธธ์ด์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • signs[i] ๊ฐ€ ์ฐธ์ด๋ฉด absolutes[i] ์˜ ์‹ค์ œ ์ •์ˆ˜๊ฐ€ ์–‘์ˆ˜์ž„์„, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์Œ์ˆ˜์ž„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

4. ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

 

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • signs๊ฐ€ [true,false,true] ์ด๋ฏ€๋กœ, ์‹ค์ œ ์ˆ˜๋“ค์˜ ๊ฐ’์€ ๊ฐ๊ฐ 4, -7, 12์ž…๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ์„ธ ์ˆ˜์˜ ํ•ฉ์ธ 9๋ฅผ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • signs๊ฐ€ [false,false,true] ์ด๋ฏ€๋กœ, ์‹ค์ œ ์ˆ˜๋“ค์˜ ๊ฐ’์€ ๊ฐ๊ฐ -1, -2, 3์ž…๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ์„ธ ์ˆ˜์˜ ํ•ฉ์ธ 0์„ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

[ ๋‚ด๊ฐ€ํ•œ ๋ฌธ์ œ ํ’€์ด ]

 

function solution(absolutes, signs) {
    let answer = 0;
    for (let i = 0; i < signs.length; i++) {
        // for๋ฌธ ; sign๊ธธ์ด๋งŒํผ ๋ฐ˜๋ณตํ•ด์„œ i๋ณ€์ˆ˜๋ฅผ 0๋ถ€ํ„ฐ sig๊ธธ์ด๋ณด๋‹ค ์ž‘์„๋–„๊นŒ์ง€ 1์”ฉ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ ๋ฐ˜๋ณตํ•จ
        if (signs[i]) {
            // if๋ฌธ์œผ๋กœ ์ฐธ/๊ฑฐ์ง“ ํŒ๋‹จ
            answer += absolutes[i];
            // ์ฐธ์ด๋ฉด absolutes[i]๋ฅผ ๋”ํ•œ๋‹ค. 
        } else {
            answer -= absolutes[i];
            // ๊ฑฐ์ง“์ด๋ฉด absolutes[i]๋ฅผ ๋บ€๋‹ค.
        }
    }
    return answer;

* 1์ฃผ์ฐจ ์ˆ™์ œ๋กœ ๋‚˜์˜จ ๋ถ€๋ถ„์ด๋ผ, ํ•ด์„์˜์ƒ์ด ์žˆ์—ˆ๋‹ค. ํŠœํ„ฐ๋‹˜์ด ๋งŒ๋“ค์–ด๋‚ธ ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€๊ฐ™๋‹ค!

function solution(absolutes, signs) {
    //1. returnํ•ด์•ผํ•˜๋Š” answer ์ƒ์„ฑ
    var answer = 0;
    
    // 2.๋‘ ๋ฐฐ์—ด์„ ๋น„๊ตํ•ด ๊ฐ€๋ฉด์„œ ๊ฐ’์„ ๋”ํ•˜๊ฑฐ๋‚˜ ํ•ด์ค„๊ฒƒ 
    // 2-1 ๋‘๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” ๊ฐ™์Œ 
    for (var i=o; i<absolutes.length; i++ ){
        // ๋ถ€ํ˜ธ (+,-)์— ๋”ฐ๋ฅธ ์ฒ˜๋ฆฌ ๋ถ„๊ธฐ
        if ( signs[i] === true ){
            // ๊ฐ’์ด true์ธ๊ฒฝ์šฐ (์–‘์ˆ˜))
            answer = answer + absolutes(i);

        }eles if (signs[i] === false) {
            // ๊ฐ’์ด true์ธ๊ฒฝ์šฐ (์Œ์ˆ˜))
            answer = answer - absolutes(i)

        }
    }


    return answer