알고리즘(Algorithm)/백준(Baekjoon)

[백준 Baekjoon] 2511번 카드놀이 - JAVA

나아가는중 2022. 7. 11. 23:00
반응형

문제풀이

간단한 구현문제입니다.

  1. A와 B의 카드를 문자열 배열로 저장합니다.
  2. 배열을 순회하며 A와 B의 카드를 비교합니다.
    • 문자열의 기본 메소드 compareTo()를 사용하여, 문자열을 비교할 수 있습니다.
    • 문자열을 비교하여 같은경우 0, 이외에는 A와 B 문자열의 차이를 리턴합니다.
  3. 마지막으로 이긴 사람을 저장합니다. 모든 라운드에서 비기는 경우는 초기화값인 'D'가 됩니다.
  4. A와 B의 최종 점수를 출력합니다.
  5. 이긴 사람을 출력합니다. 비기는 경우는 'D'를 출력합니다.
    • 모든 라운드에서 비기는 경우인지 승자가 초기값인 'D'와 비교하여 검사합니다.
    • 점수가 같은 경우 마지막으로 이긴 사람을 출력합니다.
    • 점수가 다른 경우 더 높은 점수를 획득한 사람을 출력합니다.

 

소스코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String[] strArrA = br.readLine().split(" ");
        String[] strArrB = br.readLine().split(" ");

        int scoreA = 0, scoreB = 0;
        String lastWinner = "D";

        for (int i = 0; i < 10; i++) {
            if (strArrA[i].compareTo(strArrB[i]) == 0) {
                scoreA++;
                scoreB++;
            } else if (strArrA[i].compareTo(strArrB[i]) > 0) {
                scoreA += 3;
                lastWinner = "A";
            } else {
                scoreB += 3;
                lastWinner = "B";
            }
        }

        System.out.println(scoreA + " " + scoreB);
        System.out.println(
                lastWinner.equals("D") ? "D"
                        : scoreA == scoreB ? lastWinner
                        : scoreA > scoreB ? "A"
                        : "B"
        );
    }
}
반응형