반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 중간 평균값 구하기
- 자바스크립트
- 코딩
- array
- 알고리즘
- js
- mybatis
- java
- 정렬
- 스텍
- 인프런
- 삼성소프트웨어아카데미
- 자바
- 자료구조
- javascript
- stack
- 그리디알고리즘
- spring
- 백준
- AtoZ0403
- 코딩테스트
- 코테준비
- 삼성
- NestJS
- SWEA
- 프로그래머스
- 카카오
- 콜백지옥
- 배열
- 코테
Archives
- Today
- Total
개발에 AtoZ까지
[JAVA][D2] 1926. 간단한 369게임 본문
반응형
문제
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. 첫번째 풀이법 (contains 메소드 사용)
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String guNum="369";
try {
int N = Integer.parseInt(br.readLine());
//3,6,9 인지 아닌지 확인하여 숫자를 출력할지 말지 정하는 flag
boolean flag=true;
for(int i=1;i<=N;i++) {
String[] numStr = Integer.toString(i).split("");
for(String s:numStr) {
if(guNum.contains(s)) {
System.out.print("-");
flag=false;
}
}
if(flag) {
System.out.print(i+" ");
}
else {
System.out.print(" ");
flag=true;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
2. 두번째 풀이법 (contains 사용안함)
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
int N = Integer.parseInt(br.readLine());
//3,6,9 인지 아닌지 확인하여 숫자를 출력할지 말지 정하는 flag
boolean flag=true;
for(int i=1;i<=N;i++) {
String numStr=i+"";
for(int j=0;j<numStr.length();j++) {
if(numStr.charAt(j)=='3'||numStr.charAt(j)=='6'||numStr.charAt(j)=='9') {
System.out.print("-");
flag=false;
}
}
if(flag) {
System.out.print(i+" ");
}
else {
System.out.print(" ");
flag=true;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
반응형
'코딩테스트 준비 > SWEA' 카테고리의 다른 글
[JAVA][D1] 2047. 신문 헤드라인 (0) | 2021.01.04 |
---|---|
[JAVA][D1] 2050. 알파벳을 숫자로 변환 (0) | 2021.01.04 |
[JAVA][D2] 2007. 패턴 마디의 길이 (0) | 2021.01.03 |
[JAVA][D1] 2056. 연월일 달력 (0) | 2021.01.03 |
[JAVA][D1] 2058. 자릿수 더하기 (0) | 2021.01.03 |
[JAVA][D1] 2063. 중간값 찾기 (0) | 2021.01.03 |
[JAVA][D1] 2068. 최대수 구하기 (0) | 2021.01.01 |
Comments