XHAENEUNG 문제 질문 드립니다.

  • tjtjdgur34
    tjtjdgur34

    코드가 잘 동작하는 것 같은데... 막상 제출을 하면 오답이 뜨네요... 혹시 어느 부분이 잘못된건지 여쭤봐도 될까요!?

    import java.util.Arrays;
    import java.util.Scanner;
    
    public class Main {
        // 필요한 배열
        static int[] number = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 , 10};
        static String[] charNumber = new String[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight",
                "nine", "ten" };
    
        static boolean check(int anum, String b) {
            String a = charNumber[anum];
            if (a.length() != b.length())
                return false;
    
            String[] aArray = a.split("");
            String[] bArray = b.split("");
    
            Arrays.sort(aArray);
            Arrays.sort(bArray);
    
            int count = 0;
    
            for (int i = 0; i < aArray.length; i++) {
                if (aArray[i].equals(bArray[i]))
                    count++;
            }
    
            if (count == aArray.length)
                return true;
            else
                return false;
        }
    
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            int times = scan.nextInt();
            scan.nextLine();
            for (int t = 0; t < times; t++) {
                String first = scan.next();
                String op = scan.next();
                String second = scan.next();
                scan.next(); // = 을 제거해 주기 위해서!
                String result = scan.next();
                scan.nextLine();
    
                int count = 0;
    
                for (int i = 0; i < 11; i++) {
                    if (first.equals(charNumber[i]))
                        count = i;
                }
    
                int firstnum = number[count];
    
                for (int i = 0; i < 11; i++) {
                    if (second.equals(charNumber[i]))
                        count = i;
                }
    
                int secondnum = number[count];
    
                for (int i = 0; i < 11; i++) {
                    if (result.equals(charNumber[i]))
                        count = i;
                }
    
                int resultnum = number[count];
    
                int cal = 0;
    
                switch (op) {
                case "+":
                    cal = firstnum + secondnum;
                    break;
                case "-":
                    cal = firstnum - secondnum;
                    break;
                case "*":
                    cal = firstnum * secondnum;
                    break;
                default:
                    System.out.println("Fucking Error");
                    break;
                }
    
                if (cal < 0 || cal > 10)
                    System.out.println("No");
                else {
                    if (cal == resultnum)
                        System.out.println("Yes");
    
                    else {
                        if (check(cal, result))
                            System.out.println("Yes");
                        else
                            System.out.println("No");
                    }
                }
            }
        }
    
    }
    

    7년 전
1개의 댓글이 있습니다.
  • Corea
    Corea

    아래 입력은 어떨까요?

    1
    one * one = tow

    7년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.