[Coding Test] (4) 프로그래머스 스킬체크 Lv.1

2025. 2. 17. 15:35·개발/모바일
반응형

블로그는 비영리로 운영되고 있습니다.

차후 저작권 문제가 발생할 시, 해당 글은 삭제하도록 하겠습니다.


 

 

최대한 문제 1번을 빨리 풀어야하는데, 8분이나 소비해버렸습니다ㅠ


/**
     * 제도 정착을 위해 오늘부터 일주일 동안 각자 설정한 출근 희망 시각에 늦지 않고 출근한 직원들에게 상품을 주는 이벤트를 진행하려고 합니다.
     *
     * 직원 n명이 설정한 출근 희망 시각을 담은 1차원 정수 배열 schedules, 직원들이 일주일 동안 출근한 시각을 담은 2차원 정수 배열 timelogs,
     * 이벤트를 시작한 요일을 의미하는 정수 startday가 매개변수로 주어집니다.
     * 이때 상품을 받을 직원의 수를 return 하도록 solution 함수를 완성해주세요.
     *
     * - 직원들은 일주일동안 자신이 설정한 출근 희망 시각 + 10분까지 어플로 출근해야 합니다.
     * ===> 단, 토요일, 일요일의 출근 시각은 이벤트에 영향을 끼치지 않습니다.
     * - 직원들은 매일 한 번씩만 어플로 출근하고, 모든 시각은 시에 100을 곱하고 분을 더한 정수로 표현됩니다.
     * ===> 예를 들어 10시 13분은 1013이 되고 9시 58분은 958이 됩니다.
     * - 당신은 직원들이 설정한 출근 희망 시각과 실제로 출근한 기록을 바탕으로 상품을 받을 직원이 몇 명인지 알고 싶습니다
     *
     * 제한사항
     * - 1 ≤ schedules의 길이 = n ≤ 1,000
     * - schedules[i]는 i + 1번째 직원이 설정한 출근 희망 시각을 의미합니다.
     * - 700 ≤ schedules[i] ≤ 1100
     * - 1 ≤ timelogs의 길이 = n ≤ 1,000
     * - timelogs[i]의 길이 = 7
     * - timelogs[i][j]는 i + 1번째 직원이 이벤트 j + 1일차에 출근한 시각을 의미합니다.
     * - 600 ≤ timelogs[i][j] ≤ 2359
     * - 1 ≤ startday ≤ 7
     * - 1은 월요일, 2는 화요일, 3은 수요일, 4는 목요일, 5는 금요일, 6은 토요일, 7은 일요일에 이벤트를 시작했음을 의미합니다.
     * - 출근 희망 시각과 실제로 출근한 시각을 100으로 나눈 나머지는 59 이하입니다.
     */
    // schedules: 출근 희망 시간
    // timelogs: 1주일 동안 실제 출근한 시간
    // startday: 이벤트를 시작한 요일
    fun solution(schedules: IntArray, timelogs: Array<IntArray>, startday: Int): Int {
        // 출근 희망 시간 + 10분까지 출근해야 인정
        // 토요일, 일요일은 이벤트에서 제외
        var personCount: Int = 0

        for((scheduleIndex, schedule) in schedules.withIndex()) {
            var isComplete: Boolean = true
            for((logsIndex, logs) in timelogs.withIndex()) {
                if(!isComplete) break
                if(scheduleIndex != logsIndex) continue
                var currentDay = startday
                for(timeLog in logs) {
                    if(!isComplete) break
                    if(currentDay == 6) {
                        continue
                    } else if(currentDay == 7) {
                        currentDay = 1
                        continue
                    }

                    var completeTime = schedule + 10
                    if(completeTime % 100 >= 60) {
                        completeTime -= 60
                        completeTime += 100
                    }

                    if(maxOf(completeTime, timeLog) > completeTime) {
                        isComplete = false
                    }

                    currentDay++
                }
            }

            if(isComplete) {
                personCount++
            }
        }


        return personCount
    }

 

으아.. 문제 1번에 시간을 너무 썼나보네요. 간발의 차이로 코드실행을 못해서 이번엔 시간 오버로 못풀었습니다ㅠ

반응형
저작자표시 비영리 변경금지 (새창열림)

'개발 > 모바일' 카테고리의 다른 글

[Coding Test] (8) 프로그래머스 스킬체크 Lv.1  (0) 2025.02.18
[Coding Test] (7) 프로그래머스 스킬체크 Lv.1  (0) 2025.02.18
[Coding Test] (6) 프로그래머스 스킬체크 Lv.1  (0) 2025.02.17
[Coding Test] (5) 프로그래머스 스킬체크 Lv.1  (0) 2025.02.17
[Coding Test] (3) 프로그래머스 스킬체크 Lv.1  (0) 2025.02.17
[Coding Test] (2) 이전 문제 다시 풀어보기  (0) 2025.02.13
[Kotlin] 문법 - 반복문 & 배열 & 해시 & 정렬  (0) 2025.02.13
[Coding Test] (1) 프로그래머스 스킬체크 Lv.1  (0) 2025.02.12
'개발/모바일' 카테고리의 다른 글
  • [Coding Test] (6) 프로그래머스 스킬체크 Lv.1
  • [Coding Test] (5) 프로그래머스 스킬체크 Lv.1
  • [Coding Test] (3) 프로그래머스 스킬체크 Lv.1
  • [Coding Test] (2) 이전 문제 다시 풀어보기
권퓨터
권퓨터
만드는 걸 좋아하는 개발자의 기록. 코드든 글이든, 일단 만들어 봅니다.
  • 권퓨터
    권퓨터: Kwonputer
    권퓨터
  • 티스토리 홈 관리자
  • 전체
    오늘
    어제
    • 분류 전체보기 (559)
      • 개발 (56)
        • 프로젝트 (5)
        • 모바일 (44)
        • 프론트엔드 (0)
        • 백엔드 (2)
        • 인프라 (0)
        • AI · 머신러닝 (4)
      • IT · 테크 (10)
        • 기술 트렌드 (3)
        • 도구 · 생산성 (1)
        • 제품 리뷰 · 추천 (0)
        • 마케팅 · 수익화 (6)
      • 자기계발 (7)
        • 공부법 · 언어 (0)
        • 취업 · 커리어 (7)
      • 아카이브 (486)
        • 일기 (480)
        • 취미 (6)
  • 블로그 메뉴

    • 홈
  • 링크

    • 블로그 이전
  • 공지사항

    • 서브 블로그 => https://kwonputer.com/
  • 인기 글

  • 태그

    블로그수익화
    flutter 면접 질문
    내러티브 게임
    상태관리
    파이썬
    콘텐츠자동화
    서버리스 아키텍처
    FACEBOOK광고
    Clean Architecture
    python
    클린 아키텍처
    injectable
    flutter 개발자
    dynamodb
    https://www.kwonputer.shop/
    ai 게임 개발
    AWS CDK
    AI블로그
    OpenAI GPT
    next.js
    flutter
    python 기초
    kotlin
    https://github.com/kwongeneral/kortfolio.git
    aws lambda
    Prompt Engineering
    riverpod
    Single Table Design
    TypeScript
    다국어 블로그
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
권퓨터
[Coding Test] (4) 프로그래머스 스킬체크 Lv.1
상단으로

티스토리툴바