본문 바로가기
개발/Coding Test - Python

[Python] 이것이 코딩테스트다 with 파이썬 - 구현 - 시각

by seopport 2023. 1. 20.
728x90
반응형

* 해당 문제 및 해설은 "이것이 코딩 테스트 다 with 파이썬" 책을 기준으로 요약 및 정리 하여 작성하였습니다.  

 

http://www.yes24.com/product/goods/91433923

 

이것이 취업을 위한 코딩 테스트다 with 파이썬 - YES24

나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 · 삼성전자 · 네이버 · 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생

www.yes24.com


아이디어를 코드로 바꾸는 구현

구현 이란 '머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정' 이다. 
구현 문제 유형은 모든 범위의 코딩 테스트 문제 유형을 포함하는 개념이다.

 

문제 설명 : 구현 시각

정수 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               

 

답변 및 해설

# N 을 입력받기
n = int(input())

result = 0

for h in range(N+1):
	for m in range(60):
    	for s in range(60):
        	# 매 시각 안에 '3'이 포함되어 있다면 카운트 증가
        	if '3' in str(h) + str(m) + str(s):
            	result += 1
                
print(result)

 

개인적인 생각

필자는 다음과 같은 코드를 작성하면서, 시간복잡도에 걸리지 않을까 걱정하였다.
하지만 책에서는 다음과 같이 설명하고 있다.

알고리즘 문제를 풀 때는 확인(탐색) 해야 할 전체 데이터의 개수가 100만 개 이하일 때 완전 탐색을 사용하면 적절하다.

 

오늘의 개발자 명언

오늘날 대부분의 소프트웨어는 구조적 고민없이 그냥 벽돌 한장씩 쌓아올린 피라미드 같다.
더구나 수천 만의 노예와 폭력들로 쌓아 올려졌다.
(Alan Kay, 객체지향 프로그래밍의 아버지)

출처 : 프로그래밍에 관한 명언 101가지
728x90
반응형