본문 바로가기

JAVA

[Java] 간단한 369게임 코드 (3,6,9가 있을 때마다 박수)

1. 문제

369게임의 일부를 작성해보자. 1~99까지의 정수를 입력받고 수에 3, 6, 9 중 하나가 있는 경우는 “박수짝”, 두 개 있는 경우는 “박수짝짝”, 하나도 없으면 “박수없음”을 출력하는 프로그램을 출력하는 프로그램을 작성하라. 예를 들면, 13인 경우 “박수짝”, 36인 경우 “박수짝짝”, 5인 경우 “박수없음”을 출력하면 된다.

 

 

2. 코드

import java.util.Scanner;
public class Game369test {
	public static void main(String[] args){
		
		Scanner scanner = new Scanner(System.in);
		System.out.print("1~99사이의 정수를 입력하시오 >>");
		int num = scanner.nextInt();
		
		int a = num/10; //십의 자리 수
		int b = num%10; //1의 자리 수
		int cnt=0;
		
		if(num <10) { //num이 1의 자리인 경우
			if (b%3 == 0 )
				cnt++;
		}
		
		else {  //num이 10의 자리인 경우
			if(a %3 == 0) { //10의 자리수가 3으로 나뉠 때
				cnt++;
			}
			if(b%3 == 0 ){//1의 자리수가 3으로 나뉠 때
				cnt++;
			}
		}
		
		switch(cnt) {
		case 0:
			System.out.println("박수 없음");
			break;
		case 1:
			System.out.println("박수짝");
			break;
		case 2:
			System.out.println("박수짝짝");
			break;	
		}	
	}
}

 

3. 코드 설명

코드가 조금 길어보이지만 사실상 로직은 10줄정도 밖에 안된다.

 

변수 a = 10의 자리수이다. 예를 들어 36이 있으면 3부분을 떼서 a에 저장한다.

변수 b = 1의 자리수이다. 예를 들어 35가 있다면 5부분을 떼서 b에 저장한다.

 

if문의 코드는 나름 직관적이라 생각해서 따로 설명을 하진 않겠습니다.

궁금한게 있으면 댓글로 남겨주세요

 

cnt변수는 369가 얼마나 들어가있는지 세는 변수이다.

1번이라면 박수짝, 2번이라면 박수짝짝을 출력한다. 이는 switch문에 존재한다.