๐Ÿ Algorithm/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[Programmers] ์—†๋Š” ์ˆซ์ž ๋”ํ•˜๊ธฐ(์ž๋ฐ”)

Dhey 2023. 4. 4. 16:57
๋ฐ˜์‘ํ˜•

โžฐ๋ฌธ์ œ

0๋ถ€ํ„ฐ 9๊นŒ์ง€์˜ ์ˆซ์ž ์ค‘ ์ผ๋ถ€๊ฐ€ ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜ ๋ฐฐ์—ด numbers๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. numbers์—์„œ ์ฐพ์„ ์ˆ˜ ์—†๋Š” 0๋ถ€ํ„ฐ 9๊นŒ์ง€์˜ ์ˆซ์ž๋ฅผ ๋ชจ๋‘ ์ฐพ์•„ ๋”ํ•œ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

 

์ œํ•œ์‚ฌํ•ญ

   -  1 ≤ numbers์˜ ๊ธธ์ด ≤ 9

      -  0 ≤ numbers์˜ ๋ชจ๋“  ์›์†Œ ≤ 9

      -  numbers์˜ ๋ชจ๋“  ์›์†Œ๋Š” ์„œ๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

 


์ž…์ถœ๋ ฅ ์˜ˆ

numbers result
[1, 2, 3, 4, 6, 7, 8, 0] 14
[5, 8, 4, 0, 6, 7, 9] 6

 


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

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

  • 5, 9๊ฐ€ numbers์— ์—†์œผ๋ฏ€๋กœ, 5 + 9 = 14๋ฅผ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

  • 1, 2, 3์ด numbers์— ์—†์œผ๋ฏ€๋กœ, 1 + 2 + 3 = 6์„ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

 

 


 

๐Ÿ’กํ’€์ด

โญ์ œ์ถœ ์ฝ”๋“œ

import java.util.Arrays;

class Solution {
    public int solution(int[] numbers) {
        String num = "0123456789";
        int answer = 0;
        String str = Arrays.toString(numbers);
        
        for(int i=0; i<10; i++){
            if(str.indexOf(num.charAt(i)) == -1){
                answer += (num.charAt(i) - '0');
            }
        }
        return answer;
    }
}

๐Ÿง ์ฝ”๋“œ ํ•ด์„

  1. 0 ~ 9๊นŒ์ง€๋ฅผ ๋ฌธ์ž์—ด๋กœ ์ €์žฅํ•œ๋‹ค. (num)

  2. numbers๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค. (String str = Arrays.toString(numbers);)

     -> ์ดํ›„ indexOf() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด

  3. str์— num์˜ ๊ฐ ์ž๋ฆฌ์™€ ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋˜์–ด์žˆ์ง€ ์•Š๋Š”๋‹ค๋ฉด ( if(str.indexOf(num.charAt(i)) == -1) )

     answer์— ํฌํ•จ๋˜์ง€ ์•Š์€ ๋ฌธ์ž๋ฅผ ๋”ํ•ด์ค€๋‹ค.

    (** ์ด๋•Œ num.charAt(i)๋Š” ASCII ์ฝ”๋“œ์˜ ๊ฐ’์œผ๋กœ ์ถœ๋ ฅ๋˜๋ฏ€๋กœ ๋ฌธ์ž '0'์„ ๋นผ์ค€๋‹ค.

        ex) num.charAt(5) - '0';  --> 53 - 48 = 5  )

 

 

๋ฐ˜์‘ํ˜•