PS/이코테

[이코테][Java] 럭키 스트레이트

nyrimmm 2024. 11. 19. 02:00

문제 설명

게임에서 캐릭터의 필살기인 '럭키 스트레이트'는 현재 캐릭터의 점수를 N이라고 할 때, 자릿수를 기준으로 점수 N을 반으로 나누어 왼쪽 부분의 각 자릿수의 합과 오른쪽 부분의 자릿수의 합을 더한 값이 동일한 상황일 때만 사용할 수 있습니다.

현재 점수 N이 주어지면 럭키 스트레이트를 사용할 수 있는 상태인지 아닌지를 알려주는 프로그램을 작성하세요.

 

입력조건

  • 첫째 줄에 점수 N(10 <= N <=99,999,999)
  • N의 자릿수는 항상 짝수

출력조건

  • 럭키 스트레이트를 사용할 수 있으면 "LUCKY", 사용할 수 없으면 "READY"

입출력 예시

  •  
    입력예시 출력예시
    123402 LUCKY
    7755 READY

 

 

 

 

문제 풀이

  • 점수 N을 String으로 입력받아서 문자열의 길이를 반으로 나눈다.
  • left는 왼쪽 부분의 자릿수의 합, right는 오른쪽 부분의 자릿수의 합을 구해서 비교한다.
import java.io.*;

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

        String n = br.readLine();

        int left = 0, right = 0;
        int mid = n.length() / 2;
        for (int i = 0; i < mid; i++) {
            left += n.charAt(i) - '0';
            right += n.charAt(i + mid) - '0';
        }

        if (left == right) {
            bw.write("LUCKY");
        } else {
            bw.write("READY");
        }

        bw.flush();
        bw.close();
    }
}

 

[참고서적]

이것이 취업을 위한 코딩 테스트다 with 파이썬 by 나동빈