이것이 취업을 위한 코딩 테스트다. 구현 [시각]

GoshK·2022년 1월 25일
0

이것이 취업을 위한 코딩 테스트다. with 파이썬 - 나동빈

나의 풀이

public class Time {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());
        int answer = 0;

        int hour = N;
        int minute = 60, second = 60;

        for(int i = 0; i <= hour; i++) {
            for(int j = 0; j < minute; j++) {
                for(int k = 0; k < second; k++) {
                    String time = String.valueOf(i) + j + k;
                    if(time.contains("3")) answer++;
                }
            }
        }

        System.out.println(answer);
    }
}
  • N값을 입력받는다.
  • 00시 00분 00초 부터 해당 시각이 될 때까지 반복을 돌려준다.
  • 해당 시, 분, 초를 비교하기 쉽게 문자열로 바꾸어 3을 포함하고 있는지 체크한다.
  • 있으면 answer(카운트) 를 증가시켜준다.

문제 해설 & 느낀점

완전 탐색 알고리즘은 비효율적인 시간 복잡도를 가지고 있으므로, 데이터 개수가 큰 경우에 정상적으로 동작하지 않을 수 있다. 그래서 일반적으로 알고리즘 문제를 풀 때는 확인(탐색) 해야 할 전체 데이터의 개수가 100만 개 이하일 때 완전 탐색을 사용하면 적절하다.

0개의 댓글