< 문제 >
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
< 풀이 >
package swea;
import java.util.Scanner;
public class P1926 {
//간단한 369게임
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int n=sc.nextInt(); // 정수 n
StringBuilder sb=new StringBuilder();
for(int i=1;i<=n;i++) {
int num=i;
int cnt=0;
while(num!=0) {
int k=num%10;
if(k==3 || k==6 ||k==9) {
cnt++;
}
num=num/10;
}
if(cnt==0)
sb.append(i);
else {
for(int j=0;j<cnt;j++) {
sb.append("-");
}
}
sb.append(" ");
}
System.out.println(sb);
}
}
✏️ 풀이 방법
1. 1부터 n까지 반복문을 돈다.
=> num 에 현재 값을 넣고, 뒷자리부터 보면서 3,6,9가 포함된 개수를 센다.
=> 개수가 0이면 ( 3,6,9 가 하나도 포함되지 않음) : StringBuilder 형 변수 sb에 현재 값을 추가한다.
개수가 1개 이상이면 : cnt의 개수만큼 sb에 "-" 값을 추가한다.
2. sb 를 출력한다.
✍🏻 느낀점
저번에 풀 때는 int 값을 String 으로 변경해서 풀었던 것 같은데, 이렇게 푸는 것도 나쁘지 않은 방법인 것 같다. 다만 출력 형식이 헷갈려서 조금 헤맸다,, 간단한 문제인데 실수도 조금 하고 버벅거리면서 푼 것 같다. 이 정도 문제는 오류 없이 한 번에 풀 수 있을 정도로 노력하자,, 🔥
+ 추가 풀이법
'코딩테스트 > SWEA' 카테고리의 다른 글
[JAVA] SWEA 1859. 백만 장자 프로젝트 (0) | 2024.05.17 |
---|