[SWEA] 1926. 간단한 369게임 _ Java

jii0_0·2022년 8월 24일
0

SW Expert Academy

목록 보기
26/33
post-thumbnail

간단한 369게임 (D2)

문제 링크

  • 1부터 주어진 정수 N까지 모든 숫자를 369 게임의 규칙에 맞게 출력하는 문제
  • 3, 13 일땐 -로 출력되지만 33 은 -- 333은 --- 으로 출력돼야 한다
  • 그래서 1부터 N까지의 숫자를 반복문을 돌릴때, 해당 숫자를 문자열로 만들어주고, 해당 문자열이 3으로 나눠지는 지를 카운트 해줬다 (0은 아니어야함)
  • 해당 카운트 수 만큼 output이 될 스트링빌더에 append 해주었다

Solution

import java.util.Scanner;

// 간단한 369게임
public class Solution {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		StringBuilder sb = new StringBuilder();

		int N = sc.nextInt();
		String num; // 1~N 까지 숫자 변수
		char temp; // 숫자를 자리별로 쪼개볼 변수
		int cnt = 0; // 3,6,9의 개수 세는 변수
		for (int i = 1; i <= N; i++) {
			num = Integer.toString(i);
			for (int j = 0; j < num.length(); j++) {
				temp = num.charAt(j);
				if ((int) temp % 3 == 0 && temp != '0') { // 각 자리가 3,6,9 라면
					cnt++;
				}
			}
			if (cnt > 0) { // 하나라도 3,6,9가 들어있으면
				while (cnt > 0) { // 개수만큼
					sb.append('-');
					cnt--;
				}
			} else { // 아니면 그냥 숫자
				sb.append(num);
			}

			sb.append(' ');
		}

		System.out.println(sb);

	}
}
profile
느려도 꾸준히

0개의 댓글