[문제]
게임의 아웃복서 캐릭터는 필살기인 '럭키 스트레이트'를 사용하기 위해서는 게임 내의 점수가 특정 조건을 만족해야 한다. 특정 조건이란 게임 내에서 점수를 반으로 나누어 왼쪽, 오른쪽 부분의 각 자릿수의 합이 같아야 럭키 스트레이트를 사용할 수 있다. 점수 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일 경우 양쪽 자릿수가 같다고 판단할 수 있다. 이렇게 변수를 하나만 사용하여 위의 문제를 해결할 수 있다.
'기타 사이트 > 이코테' 카테고리의 다른 글
[그리디] 곱하기 혹은 더하기 (0) | 2021.06.15 |
---|---|
[구현문제] 자물쇠와 열쇠_2020 카카오 신입 공채 (0) | 2021.06.15 |
[그리디] 무지의 먹방 라이브_2019 카카오 신입 공채 (0) | 2021.06.15 |
[구현문제] 문자열 재정렬 (0) | 2021.06.15 |
[그리디] 만들 수 없는 금액 (0) | 2021.06.15 |