[3,6,9 - Easy]

< 문제 >

  • 개요
    1부터 숫자를 이어나가되, 3, 6, 9가 들어가는 숫자가 나오면 숫자를 말하지 말고 박수를 쳐을 해야 한다.
    33, 333과 같이 3, 6, 9가 여러 개 들어갈 경우 여러 번 해야 한다(예: 36, 33 → 박수 2번)
    10,000까지 했다면 박수를 친 총 횟수는 얼마인가?

  • 예상 결과
    예상 결과는 하기 코드 실행시 예상되는 결과 값이다.
    예 1: ‘40’까지 3,6,9 박수친 수 : ‘22’번
    예 2: ‘10000’까지 3,6,9 박수친 수 : ‘12000’번

< 정답풀이 >

 public class Test04 {

	private static final String result = "결과 : '%d'까지 3,6,9 박수친 수 : '%d'번";

	public static void main( String[] args ) {
		// 시작시간 기록
		long startTime = System.currentTimeMillis();

		// STEP 1. TEST 데이터 준비
		int testNum = 10000;

		// STEP 2. 3,6,9가 나올때 박수를 친 수
		int cnt = CountingSUK( testNum );
		System.out.println( String.format( result, testNum, cnt ) );

		long endTime = System.currentTimeMillis() - startTime;
		System.out.println( "소요시간 : " + endTime + "ms." );

	}

	/**
	 * 
	 * <PRE>
	 * 3,6,9가 나올때 총 박수를 친 수를 구한다.
	 * </PRE>
	 * 
	 * @param num
	 * @return
	 */
	public static int CountingSUK( int num ) {

		// STEP 1. 3,6,9인 경우에만 박수를 친다.
		int clapCnt = 0;
		for ( int inx = 1 ; inx <= num ; inx++ ) {
			String regex = "[0-2]|[4-5]|[7-8]";
			clapCnt += String.valueOf( inx ).replaceAll( regex, "" ).length();
		}
		return clapCnt;
	}