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

[Programmers] OXํ€ด์ฆˆ(์ž๋ฐ”)

Dhey 2023. 4. 10. 15:39
๋ฐ˜์‘ํ˜•

โžฐ๋ฌธ์ œ

๋ง์…ˆ, ๋บ„์…ˆ ์ˆ˜์‹๋“ค์ด 'X [์—ฐ์‚ฐ์ž] Y = Z' ํ˜•ํƒœ๋กœ ๋“ค์–ด์žˆ๋Š” ๋ฌธ์ž์—ด ๋ฐฐ์—ด quiz๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์ˆ˜์‹์ด ์˜ณ๋‹ค๋ฉด "O"๋ฅผ ํ‹€๋ฆฌ๋‹ค๋ฉด "X"๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‹ด์€ ๋ฐฐ์—ด์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

 

์ œํ•œ์‚ฌํ•ญ

   -  ์—ฐ์‚ฐ ๊ธฐํ˜ธ์™€ ์ˆซ์ž ์‚ฌ์ด๋Š” ํ•ญ์ƒ ํ•˜๋‚˜์˜ ๊ณต๋ฐฑ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋‹จ ์Œ์ˆ˜๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋งˆ์ด๋„ˆ์Šค ๊ธฐํ˜ธ์™€ ์ˆซ์ž ์‚ฌ์ด์—๋Š” ๊ณต๋ฐฑ์ด

      ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

   -  1 ≤ quiz์˜ ๊ธธ์ด ≤ 10

   -  X, Y, Z๋Š” ๊ฐ๊ฐ 0๋ถ€ํ„ฐ 9๊นŒ์ง€ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ์ •์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ๊ฐ ์ˆซ์ž์˜ ๋งจ ์•ž์— ๋งˆ์ด๋„ˆ์Šค ๊ธฐํ˜ธ๊ฐ€ ํ•˜๋‚˜ ์žˆ์„ ์ˆ˜ ์žˆ๊ณ 

      ์ด๋Š” ์Œ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

   -  X, Y, Z๋Š” 0์„ ์ œ์™ธํ•˜๊ณ ๋Š” 0์œผ๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

   -  -10,000 ≤ X, Y ≤ 10,000

   -  -20,000 ≤ Z ≤ 20,000

   -  [์—ฐ์‚ฐ์ž]๋Š” + ์™€ - ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

 


์ž…์ถœ๋ ฅ ์˜ˆ

quiz result
["3 - 4 = -3", "5 + 6 = 11"] ["X", "O"]
["19 - 6 = 13", "5 + 66 = 71", "5 - 15 = 63", "3 - 1 = 2"] ["O", "O", "X", "O"]

 


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

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

  • 3 - 4 = -3 ์€ ํ‹€๋ฆฐ ์ˆ˜์‹์ด๋ฏ€๋กœ "X", 5 + 6 = 11 ์€ ์˜ณ์€ ์ˆ˜์‹์ด๋ฏ€๋กœ "O" ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ["X", "O"]๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

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

  • 19 - 6 = 13 ์€ ์˜ณ์€ ์ˆ˜์‹์ด๋ฏ€๋กœ "O", 5 + 66 = 71 ์€ ์˜ณ์€ ์ˆ˜์‹์ด๋ฏ€๋กœ "O", 5 - 15 = 63 ์€ ํ‹€๋ฆฐ ์ˆ˜์‹์ด๋ฏ€๋กœ "X", 3 - 1 = 2๋Š” ์˜ณ์€ ์ˆ˜์‹์ด๋ฏ€๋กœ "O" ๋”ฐ๋ผ์„œ ["O", "O", "X", "O"]๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

 

 

 


 

๐Ÿ’กํ’€์ด

๐Ÿ‘€ ์ ‘๊ทผ

  1. ๋ฌธ์ž์—ด ๋ฐฐ์—ด quiz์˜ ๊ฐ ์ˆ˜์‹์„ ์ˆซ์ž์™€ ์—ฐ์‚ฐ์ž๋งŒ ๋‚จ๊ฒจ ์ƒˆ๋กœ์šด 2์ฐจ์—ด ๋ฐฐ์—ด์— ๋‹ด๋Š”๋‹ค.

  2. ๋ฐฐ์—ด 0, 2๋ฒˆ์งธ๋ฅผ 1๋ฒˆ์งธ ๋ถ€ํ˜ธ๋กœ ๊ณ„์‚ฐ -> ๋ฐฐ์—ด 4๋ฒˆ์งธ๋ž‘ ๊ฐ™๋‹ค๋ฉด "O" / ๋‹ค๋ฅด๋‹ค๋ฉด "X"

 

 

 

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

class Solution {
    public String[] solution(String[] quiz) {
        /* 
        1. ๋ฌธ์ž์—ด ๋ฐฐ์—ด quiz์˜ ๊ฐ ์ˆ˜์‹์„ ์ˆซ์ž์™€ ์—ฐ์‚ฐ์ž๋งŒ ๋‚จ๊ฒจ ์ƒˆ๋กœ์šด 2์ฐจ์—ด ๋ฐฐ์—ด์— ๋‹ด์Œ
        2. ๋ฐฐ์—ด 0, 2๋ฒˆ์งธ๋ฅผ 1๋ฒˆ์งธ ๋ถ€ํ˜ธ๋กœ ๊ณ„์‚ฐ -> ๋ฐฐ์—ด 4๋ฒˆ์งธ๋ž‘ ๊ฐ™๋‹ค๋ฉด "O" / ๋‹ค๋ฅด๋‹ค๋ฉด "X"        
        */
        
        String[][] str_arr = new String[quiz.length][5];
        String[] answer = new String[quiz.length];

        for(int i=0; i<quiz.length; i++){         
            str_arr[i] = quiz[i].split(" ");
            
            int result = 0;
            if(str_arr[i][1].equals("+")){
                result = Integer.parseInt(str_arr[i][0]) + Integer.parseInt(str_arr[i][2]);
                if(result == Integer.parseInt(str_arr[i][4])){
                    answer[i] = "O";
                }else{
                    answer[i] = "X";
                }
            }else if(str_arr[i][1].equals("-")){
                result = Integer.parseInt(str_arr[i][0]) - Integer.parseInt(str_arr[i][2]);
                if(result == Integer.parseInt(str_arr[i][4])){
                    answer[i] = "O";  
                }else{
                    answer[i] = "X";  
                }
            }
        }      
        return answer;
    }
}

๐Ÿง ์ฝ”๋“œ ํ’€์ด

  1. str_arr[ ][ ] : ๋ฌธ์ž์—ด ๋ฐฐ์—ด quiz์˜ ๊ฐ ์ˆ˜์‹์„ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ˆซ์ž์™€ ์—ฐ์‚ฐ์ž๋งŒ ๋‚จ๊ฒจ 2์ฐจ์› ๋ฐฐ์—ด์— ๋‹ด๊ธฐ ์œ„ํ•œ ๋ณ€์ˆ˜

  2. str_arr[i]์˜ 1๋ฒˆ ๊ฐ’์€ "+" or "-"์ด๋ฏ€๋กœ ๋‘ ๊ฐ€์ง€์˜ ๊ฒฝ์šฐ๋กœ ๋‚˜๋ˆ„์–ด if๋ฌธ์„ ์ž‘์„ฑํ•œ๋‹ค.

  3. str_arr[i]์˜0๋ฒˆ์งธ, 2๋ฒˆ์งธ ๊ฐ’์„ ๊ฐ ๋ถ€ํ˜ธ์— ๋งž๊ฒŒ ๊ณ„์‚ฐํ•˜์—ฌ intํ˜• ๋ณ€์ˆ˜ result์— ๋‹ด๋Š”๋‹ค.

  4. result์˜ ๊ฐ’๊ณผ 4๋ฒˆ์งธ ๊ฐ’์˜ ์ผ์น˜ ์—ฌ๋ถ€์— ๋”ฐ๋ผ์„œ  "O" or "X"๋ฅผ answer์— ๋‹ด๋Š”๋‹ค.

 

 

๋ฐ˜์‘ํ˜•