๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿงฉ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/๐Ÿต ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด(Java)

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์Œ์–‘ ๋”ํ•˜๊ธฐ

by carrot0911 2024. 11. 12.

๋ฌธ์ œ ์„ค๋ช…

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

https://school.programmers.co.kr/learn/courses/30/lessons/76501

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

์ œํ•œ ์‚ฌํ•ญ

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

์ž…์ถœ๋ ฅ ์˜ˆ

absolutes signs result
[4, 7, 12] [true, false, true] 9
[1, 2, 3] [false, false, true] 0

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

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

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

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

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

 

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

class Solution {
    public int solution(int[] absolutes, boolean[] signs) {
        int answer = 0;
        
        for (int i = 0; i < absolutes.length; i++) {
            if (signs[i] == true) {
                answer += absolutes[i];
            } else {
                answer -= absolutes[i];
            }
        }

        
        return answer;
    }
}

์ฝ”๋“œ ์„ค๋ช…

๋ฌธ์ œ๋ฅผ ๋ณด๋ฉด์„œ ๊ฐ€์žฅ ๋จผ์ € ํ•œ ์ƒ๊ฐ์ด '๊ฐ ๋ฐฐ์—ด์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ๊ฐ™์ด ๊ฐ€์ ธ์˜ค๋ฉด ๋˜๊ฒ ๋‹ค.'์˜€๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐ์„ ํ–ˆ๊ณ , ์ฒ˜์Œ์—๋Š” ์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ์„ ์ƒ๊ฐํ–ˆ์ง€๋งŒ ๊ฐ™์€ ์ธ๋ฑ์Šค์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์ฒฉ ํ•„์š”์—†์ด ๋ฐ˜๋ณต๋ฌธ ํ•˜๋‚˜๋กœ ํ•ด๊ฒฐ์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค.

  • int answer = 0 : ์ •๋‹ต์„ ๋„ฃ์„ ๋ณ€์ˆ˜ answer์˜ ๊ฐ’์„ 0์œผ๋กœ ์ €์žฅํ•œ๋‹ค.
  • for (int i = 0; i < absolutes.length; i++) { } : ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋ณ€์ˆ˜ i๊ฐ€ 0๋ถ€ํ„ฐ absolutes.length - 1๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ absolutes.length ๋Œ€์‹  signs.length๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋  ๊ฒƒ ๊ฐ™๋‹ค.
    • if (signs[i] == true) { answer += absolutes[i]) } : ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐ์—ด signs์˜ i๋ฒˆ์งธ boolean ๊ฐ’์ด true๋ผ๋ฉด ๋ณ€์ˆ˜ answer์— absolutes์˜ i๋ฒˆ์งธ ์ธ๋ฑ์Šค ๊ฐ’์„ ๋”ํ•œ๋‹ค.
    • else { answer -= absolutes[i] } : ๋ฐฐ์—ด signs์˜ i๋ฒˆ์งธ boolean ๊ฐ’์ด false๋ผ๋ฉด ๋ณ€์ˆ˜ answer์—์„œ absolutes์˜ i๋ฒˆ์งธ ์ธ๋ฑ์Šค ๊ฐ’์„ ๋บ€๋‹ค.