본문 바로가기
알고리즘/문자열, 정렬

[알고리즘] 가위 바위 보 with Java, else if 에 대한 생각

by VIPeveloper 2022. 3. 1.
반응형

3.1 절 맞이 알고리즘 문제 풀이 진행 중이다. 배열 문제도 빠르게 마무리 짓고 기본을 탄탄히 할 수 있는 개발자가 되었으면 좋겠다.

오늘 배운 것

1. 문제 풀이

. else if 로직에 대한 이해도를 높이는 계기가 되었다.

. 비기는 로직 > A가 이기는 로직 > else B가 이기는 로직


import java.util.ArrayList;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
        int i = kb.nextInt();
        ArrayList<Integer> a = new ArrayList<>();
        ArrayList<Integer> b = new ArrayList<>();
        for (int j = 0; j < i; j++) {
            a.add(kb.nextInt());
        }
        for (int j = 0; j < i; j++) {
            b.add(kb.nextInt());
        }


        solution(i,a,b);

    }

    private static void solution(int i, ArrayList<Integer> a, ArrayList<Integer> b) {
        ArrayList<String> answer = new ArrayList<>();
        for (int j = 0; j < i; j++) {
            int a_ = a.get(j);
            int b_ = b.get(j);

            // 내가 처음에 생각한 로직
            if(a_ == b_){
                answer.add("D");
            }else if(a_ == 1){
                if (b_ == 2){
                    answer.add("B");
                }else{
                    answer.add("A");
                }
            }else if(a_ == 2){
                if (b_ == 1){
                    answer.add("A");
                }else{
                    answer.add("B");
                }
            }else if(a_ == 3){
                if(b_ == 1){
                    answer.add("B");
                }else{
                    answer.add("A");
                }
            }
            
            /** 풀이 로직
             if(a_ == b_){
                answer.add("D");
            }else if(a_ == 1 && b_ == 3){
                answer.add("A");
            }else if(a_ == 2 && b_ == 1){
                answer.add("A");
            }else if(a_ == 3 && b_ == 2){
                answer.add("A");
            }else{
                answer.add("B");
            }
            */
        }
        for (int j = 0; j < answer.size(); j++) {
            System.out.println(answer.get(j));
        }
    }
}
반응형