알고리즘 연습/구현, 문자열

[Lv.1 / 프로그래머스 / 파이썬] 유연근무제 (2025 프로그래머스 코드챌린지 1차 예선)

김세진 2025. 3. 24. 14:13
반응형

 

 

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

풀이

 

시간 체크를 쉽게 하기 위해 모든 시간을 분으로 바꿔 계산하도록 한다.

또한 요일 체크를 쉽게 하기 위해 나머지 연산을 사용하면 좋다.

 

def solution(schedules, timelogs, startday):
    result = 0
    
    # 직원 순회
    for i in range(len(schedules)):
        schedule = convert(schedules[i]) + 10
        timelog = timelogs[i]
        cur_day = startday - 1
        
        # 출근 기록 순회
        for log in timelog:
            cur_day += 1
            
            # 토, 일은 제외
            if cur_day % 7 in [0, 6]:
                continue
            
            # 지각 체크
            if convert(log) > schedule:
                break
        else:
            result += 1
        
    return result
            
def convert(time):
    time = str(time)
    h, m = time[:-2], time[-2:]
    return int(h)*60 + int(m)

 

 

 

 

반응형