Contents

OXν€΄μ¦ˆ (with.Java)

   Apr 18, 2024     2 min read

β€œOXν€΄μ¦ˆ (with.Java)” λ¬Έμ œμ— λŒ€ν•˜μ—¬ μ•Œμ•„λ³Έ κΈ€μž…λ‹ˆλ‹€.

μ½”λ”© ν…ŒμŠ€νŠΈ 문제λ₯Ό ν’€λ©°, ν’€μ—ˆλ˜ λ¬Έμ œμ— λŒ€ν•œ νšŒκ³ μ™€ λ‹€λ₯Έ 풀이 방법을 μ•Œμ•„λ³΄λ©°, μ•Œμ•„κ°€κ³ μž ν•©λ‹ˆλ‹€.

λ¬Έμ œμ— λŒ€ν•΄ λ¨Όμ € μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

문제

λ§μ…ˆ, λΊ„μ…ˆ μˆ˜μ‹λ“€μ΄ β€˜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
  • [μ—°μ‚°μž]λŠ” + 와 - 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€.

μž…μΆœλ ₯ μ˜ˆμ‹œ

my_stringnum1
[β€œ3 - 4 = -3”, β€œ5 + 6 = 11”][β€œX”, β€œO”]
[β€œ19 - 6 = 13”, β€œ5 + 66 = 71”, β€œ5 - 15 = 63”, β€œ3 - 1 = 2”][β€œO”, β€œO”, β€œX”, β€œO”]

λ¬Έμ œμ— λŒ€ν•œ λ‚˜μ˜ 풀이

class Solution {
    public String[] solution(String[] quiz) {
        String[] answer = new String[quiz.length];
        String[] temp = new String[quiz.length];

        for(int i = 0; i < quiz.length; i++){
            temp = quiz[i].split(" ");

            if(temp[1].equals("+")){
                if(Integer.valueOf(temp[0]) + Integer.valueOf(temp[2]) == Integer.valueOf(temp[4])){
                    answer[i] = "O";
                }else{
                    answer[i] = "X";
                }
            }

            if(temp[1].equals("-")){
                if(Integer.valueOf(temp[0]) - Integer.valueOf(temp[2]) == Integer.valueOf(temp[4])){
                    answer[i] = "O";
                }else{
                    answer[i] = "X";
                }
            }
        }
        return answer;
    }
}

풀이 μ„€λͺ…

solution λ©”μ„œλ“œλŠ” 주어진 quiz λ°°μ—΄μ˜ 각 μš”μ†Œλ₯Ό λΆ„μ„ν•˜μ—¬ κ²°κ³Όλ₯Ό μ €μž₯ν•  answer 배열을 μ΄ˆκΈ°ν™”ν•©λ‹ˆλ‹€.

λ˜ν•œ μž„μ‹œλ‘œ μ‚¬μš©ν•  temp 배열도 μ΄ˆκΈ°ν™”ν•©λ‹ˆλ‹€.

그런 λ‹€μŒ for 루프λ₯Ό 톡해 quiz λ°°μ—΄μ˜ 각 μš”μ†Œλ₯Ό μ²˜λ¦¬ν•©λ‹ˆλ‹€.

각 μš”μ†ŒλŠ” 곡백을 κΈ°μ€€μœΌλ‘œ λΆ„ν• λ˜μ–΄ temp 배열에 μ €μž₯λ©λ‹ˆλ‹€.

temp λ°°μ—΄μ˜ 두 번째 μš”μ†Œκ°€ β€œ+”인 경우, 첫 번째 μš”μ†Œμ™€ μ„Έ 번째 μš”μ†Œλ₯Ό μ •μˆ˜λ‘œ λ³€ν™˜ν•˜μ—¬ λ”ν•œ 값이 λ‹€μ„― 번째 μš”μ†Œμ™€ 같은지 ν™•μΈν•©λ‹ˆλ‹€.

κ°™λ‹€λ©΄ answer λ°°μ—΄μ˜ ν•΄λ‹Ή μΈλ±μŠ€μ— β€œO”λ₯Ό μ €μž₯ν•˜κ³ , λ‹€λ₯΄λ‹€λ©΄ β€œX”λ₯Ό μ €μž₯ν•©λ‹ˆλ‹€.

temp λ°°μ—΄μ˜ 두 번째 μš”μ†Œκ°€ β€œ-β€œμΈ κ²½μš°μ—λ„ 같은 λ°©μ‹μœΌλ‘œ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

λ§ˆμ§€λ§‰μœΌλ‘œ answer 배열을 λ°˜ν™˜ν•©λ‹ˆλ‹€.