본문 바로가기

코딩테스트/SWEA

[JAVA] SWEA 1926. 간단한 369게임

< 문제 >

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&problemLevel=3&contestProbId=AV5PTeo6AHUDFAUq&categoryId=AV5PTeo6AHUDFAUq&categoryType=CODE&problemTitle=&orderBy=SUBMIT_COUNT&selectCodeLang=ALL&select-1=3&pageSize=10&pageIndex=1

 

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 으로 변경해서 풀었던 것 같은데, 이렇게 푸는 것도 나쁘지 않은 방법인 것 같다. 다만 출력 형식이 헷갈려서 조금 헤맸다,, 간단한 문제인데 실수도 조금 하고 버벅거리면서 푼 것 같다. 이 정도 문제는 오류 없이 한 번에 풀 수 있을 정도로 노력하자,, 🔥

 

 

 

 

 

+ 추가 풀이법


https://velog.io/@kimmjieun/SWEA-1926%EB%B2%88-%EA%B0%84%EB%8B%A8%ED%95%9C-369%EA%B2%8C%EC%9E%84-Java-%EC%9E%90%EB%B0%94

'코딩테스트 > SWEA' 카테고리의 다른 글

[JAVA] SWEA 1859. 백만 장자 프로젝트  (0) 2024.05.17