알고리즘/구현

[JAVA] 이.코.테 ( 구현 ) - 시각

hongeeii 2021. 7. 30.
728x90
반응형

시각

문제

정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는
모든 경우의 수를 구하는 프로그램을 작성하라. 예를 들어 1을 입력했을 때
다음은 3이 하나라도 포함되어 있으므로 세어야 하는 시각이다

  • 00시 00분 03초
  • 00시 13분 30초

반면에 다음은 3이 하나도 포함되어 있지 않으므로 세면 안 되는 시각이다

  • 00시 02분 55초
  • 01시 27분 45초

입력

첫째 줄에 정수 N이 입력된다.(0<=N<=23)

출력

00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 출력한다.

입력 예시
5

출력 예시
11475

 

 

 

나의 풀이

public class Time {

	public static int sum(int n) {
		int cnt = 0;

		for (int i = 0; i <= n; i++) {  ///시
			for (int j = 0; j < 60; j++) { ///분
				for (int k = 0; k < 60; k++) { ///초
					String temp = "";
					temp += "" + i + j + k;
					if (temp.contains("3")) {
						cnt++;
					}
				}
			}
		}

		return cnt;
	}

	public static void main(String[] args) {
		System.out.println(sum(5));
	}
}

풀이 해설 : 시, 분, 초 에 대한 경우의 수는 24 * 60 * 60 이며 3중 for문을 쓸 생각을 먼저 하였습니다.

               다음으로 정수를 문자열로 바꾼뒤에 3이있는지 검사하였습니다. (정수 33 : 3이 포함 x, 문자 "33" : 3이 포함)

728x90
반응형

추천 글