[알고리즘] 간단한 369게임


1926. 간단한 369게임

삼성 SW Expert Academy 알고리즘 문제풀기

3 6 9 게임을 프로그램으로 제작중이다. 게임 규칙은 다음과 같다.

  1. 숫자 1부터 순서대로 차례대로 말하되, “3” “6” “9” 가 들어가 있는 수는 말하지 않는다.

1 2 - 4 5 - 7 8 - …

  1. “3” “6” “9”가 들어가 있는 수를 말하지 않는대신, 박수를 친다. 이 때, 박수는 해당 숫자가 들어간 개수만큼 쳐야 한다.
    예를 들어 숫자 35의 경우 박수 한 번, 숫자 36의 경우 박수를 두번 쳐야 한다.

입력으로 정수 N 이 주어졌을 때, 1~N 까지의 숫자를

게임 규칙에 맞게 출력하는 프로그램을 작성하라.

박수를 치는 부분은 숫자 대신, 박수 횟수에 맞게 “-“ 를 출력한다.

여기서 주의해야 할 것은 박수 한 번 칠 때는 - 이며, 박수를 두 번 칠 때는 - - 가 아닌 – 이다.

[제약사항]

N은 10이상 1,000이하의 정수이다. (10 ≤ N ≤ 1,000)

[입력]

입력으로 정수 N 이 주어진다.

[출력]

1 ~ N까지의 숫자를 게임 규칙에 맞게 출력한다.

> 입력
10

> 출력
1 2 - 4 5 - 7 8 - 10
import java.util.Scanner;

/* 19.08.19
 * SW Expert Academy
 * [1926] 간단한 369게임
 * 3 6 9 에서는 - 로 출력
 */

public class N1926 {
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    String change = "";
    String sol = "";
    int total = scan.nextInt();
    for (int count = 1; count <= total; count++) {
      change = Integer.toString(count);
      if(change.contains("3") || change.contains("6") || change.contains("9")) {
        String [] count369 = change.split("");
        change = "";
        for(int i = 0; i<count369.length; i++) {
          if (count369[i].equals("3") || count369[i].equals("6") || count369[i].equals("9")) {
	    change = change.concat("-");
	  }
        }
      }
      if(count == total) {
      sol = sol.concat(change);
      break;
      }
      sol = sol.concat(change + " ");
    }
    System.out.print(sol);
    scan.close();
  }
}





© 2019. by jun108059

Powered by youngjun