기타 사이트/이코테

[구현문제] 럭키 스트레이트

빙수빈수 2021. 6. 15. 14:44

[문제]

 게임의 아웃복서 캐릭터는 필살기인 '럭키 스트레이트'를 사용하기 위해서는 게임 내의 점수가 특정 조건을 만족해야 한다. 특정 조건이란 게임 내에서 점수를 반으로 나누어 왼쪽, 오른쪽 부분의 각 자릿수의 합이 같아야 럭키 스트레이트를 사용할 수 있다. 점수 N이 주어졌을때 럭키 스트레이트를 사용할 수 있는 상태인지 아닌지 알려주는 프로그램을 작성하여라.

 

[코드]

import java.util.Scanner;

public class realization_p321 {
	public static String str;
	public static int summary1=0;
	public static int summary2=0;
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		str=sc.nextLine();
		
		// 왼쪽 부분의 자릿수 합 더하기
		for(int i=0;i<str.length()/2;i++) 
			summary1+=str.charAt(i)-'0';
		
		// 오른쪽 부분의 자릿수 합 더하기
		for(int i=str.length()/2;i<str.length();i++)
			summary2+=str.charAt(i)-'0';
		
		// 자릿수 합에 따른 출력
		if(summary1==summary2)
			System.out.println("LUCKY");
		else 
			System.out.println("READY");
		
	}
}

 

[고찰]

 쉽게 해결할 수 있는 문제였다. 이상적인 풀이는 왼쪽 부분의 자릿수 합을 저장한 변수를 이용하는 것이다.

왼쪽 부분의 자릿수 합을 구한 후 변수 summary에 저장하고, 오른쪽 부분의 자릿수를 구하면서 해당 값을 summary에서 뺀다. 최종적으로 summary 값이 0일 경우 양쪽 자릿수가 같다고 판단할 수 있다. 이렇게 변수를 하나만 사용하여 위의 문제를 해결할 수 있다.