[Python - Lv.2] 기능개발

2024. 3. 18. 20:34·알고리즘 연습/프로그래머스

문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제
문제

문제 이해

  • 각 기능은 진도가 100%일 때 서비스에 반영 가능
  • 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses, 개발 속도가 적힌 정수 배열 speeds
  • 배포는 하루에 한 번씩 이뤄지며, 뒤의 기능이 먼저 개발돼도 앞의 기능이 개발돼야 함께 배포 가능
  • 각 배포마다 몇 개의 기능이 배포되는지 반환

풀이

progresses와 speeds를 활용해 각 기능의 배포 날짜를 구하고, 각 배포마다 몇 개의 기능이 배포되는지 확인
  1. 각 기능의 배포 날짜를 저장하기 위한 배열 day, 배포될 기능의 수 func 생성
  2. progresses와 speeds를 활용해 기능의 개발이 100%에 도달하기 위한 일 수를 day에 저장
  3. 배열 day를 순회하며 해당 배포일 수보다 작은 배포일 수를 가진 기능의 수를 배열 func에 저장후 반환

코드

카테고리가 스택/큐여서 자료구조가 필요한 문제인가 싶었지만, 그냥 생각대로 풀었더니 해결 되었다. 리스트여서 스택을 써서 푼건가..?

def solution(progresses, speeds):
    day = []
    func = []
    
    for p, s in zip(progresses, speeds):
        cnt = 0
        while p < 100:
            p += s
            cnt += 1
        day.append(cnt)
    
    i = 0
    day_len = len(day)
    while i < day_len:
        d = day[i]
        cnt = 0
        while day[i] <= d:
            cnt, i = cnt + 1, i + 1
            if i == day_len:
                break
        func.append(cnt)
        
    return func

'알고리즘 연습 > 프로그래머스' 카테고리의 다른 글

[Python - Lv.2] 프로세스  (0) 2024.03.20
[Python - Lv.2] 의상  (0) 2024.03.19
[Python - Lv.2] n^2 배열 자르기  (0) 2024.03.17
[Python - Lv.2] [1차] 캐시  (0) 2024.03.16
[Python - Lv.2] 할인 행사  (0) 2024.03.15
'알고리즘 연습/프로그래머스' 카테고리의 다른 글
  • [Python - Lv.2] 프로세스
  • [Python - Lv.2] 의상
  • [Python - Lv.2] n^2 배열 자르기
  • [Python - Lv.2] [1차] 캐시
기억에 남는 블로그 닉네임
기억에 남는 블로그 닉네임
  • 기억에 남는 블로그 닉네임
    얕게, 깊게
    기억에 남는 블로그 닉네임
  • 전체
    오늘
    어제
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
    • 분류 전체보기
      • Data Engineering
        • Airflow
        • 빅데이터
        • 자동화
        • 기타
      • Infra
        • AWS
        • Terraform
        • [인프라 구축기] Terraform 활용 AWS ..
      • CS
        • 자료구조
        • 알고리즘
        • 네트워크
        • 데이터베이스
        • 이것이 취업을 위한 코딩 테스트다 with 파이썬
      • Python
      • Web
      • Git
      • 기타
        • 취업 & 진로
        • 회고록
        • 기타
      • 프로젝트 단위 공부
        • [부스트코스] DataLit : 데이터 다루기
        • [개인 프로젝트] 공모전 크롤링
        • [개인 프로젝트] FC Online 공식 경기 분..
        • 프로젝트 개선 방안
      • [프로그래머스] 데이터 엔지니어링 데브코스 3기
        • TIL(Today I Learn)
        • 숙제
        • 기타
      • 알고리즘 연습
        • 프로그래머스
        • 백준
  • 링크

    • 깃허브
    • 링크드인
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
기억에 남는 블로그 닉네임
[Python - Lv.2] 기능개발
상단으로

티스토리툴바