3 6 9 게임을 프로그램으로 제작중이다. 게임 규칙은 다음과 같다.
1. 숫자 1부터 순서대로 차례대로 말하되, “3” “6” “9” 가 들어가 있는 수는 말하지 않는다.
1 2 3 4 5 6 7 8 9…
2. "3" "6" "9"가 들어가 있는 수를 말하지 않는대신, 박수를 친다. 이 때, 박수는 해당 숫자가 들어간 개수만큼 쳐야 한다.
예를 들어 숫자 35의 경우 박수 한 번, 숫자 36의 경우 박수를 두번 쳐야 한다.
입력으로 정수 N 이 주어졌을 때, 1~N 까지의 숫자를
게임 규칙에 맞게 출력하는 프로그램을 작성하라.
박수를 치는 부분은 숫자 대신, 박수 횟수에 맞게 “-“ 를 출력한다.
여기서 주의해야 할 것은 박수 한 번 칠 때는 - 이며, 박수를 두 번 칠 때는 - - 가 아닌 -- 이다.
[제약사항]
N은 10이상 1,000이하의 정수이다. (10 ≤ N ≤ 1,000)
[입력]
입력으로 정수 N 이 주어진다.
[출력]
1 ~ N까지의 숫자를 게임 규칙에 맞게 출력한다.
[풀이]
1을 우선 출력해준다.
2부터 반복문을 시작하고, 숫자를 String으로 바꾼다.
3,6,9가 있을 때 박수칠 횟수를 셀 count도 0으로 선언한다.
String 으로 변환한 숫자를 한글자씩 보면서 3,6,9가 있다면 count를 올려준다.
count가 0이라면? 그냥 숫자를 출력한다.
0이 아니라면 count 횟수만큼 -를 출력한다.
import java.util.*;
import java.lang.*;
import java.io.*;
class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int number = Integer.parseInt(br.readLine());
System.out.print("1");
for(int i = 2 ; i <= number ; i++){
String numberToStr = String.valueOf(i);
int count = 0;
for(int j = 0 ; j < numberToStr.length() ; j++){
char num = numberToStr.charAt(j);
if(num == '3' ||
num == '6'||
num == '9')
count++;
}
if(count == 0)
System.out.print(" " + i);
else{
System.out.print(" ");
for(int k = 0 ; k < count ; k++)
System.out.print("-");
}
}
}
}
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
'코딩테스트 > SWEA' 카테고리의 다른 글
[SWEA] (D2) 1288. 새로운 불면증 치료법 (1) | 2024.10.25 |
---|---|
[SWEA] (D2) 1979. 어디에 단어가 들어갈 수 있을까 (0) | 2024.10.25 |
[SWEA] (D2) 1948. 날짜 계산기 (0) | 2024.10.23 |
[SWEA] (D2) 1966. 숫자를 정렬하자 (0) | 2024.10.22 |
[SWEA] (D2) 1959. 두 개의 숫자열 (3) | 2024.10.22 |