[2021-07-25] 기능개발 (lv2)

2021. 7. 25. 20:35·코딩테스트

 

푼 시간 : 50분

언어 : 자바

 


 

https://programmers.co.kr/learn/courses/30/lessons/42586

 

코딩테스트 연습 - 기능개발

프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는

programmers.co.kr

 

스택 큐 활용해야되서 했는데,

오히려 다른데서 함정에 빠져버렸다.

 

작업량이 끝내려니까 자꾸 하나가 안더해져서

계속 골치였는데, 그냥 잠깐 노래듣다보니

마지막에 더하면 되는데 왜 굳이 못 더할까?

이런 생각이 들었다.

끝에 바로 더해버렸다.

 

def solution(progresses, speeds):
    answer = []
    count=0
    
    while progresses:
        if progresses[0]<100:
        # 작업량이 100이 안됐을때
            for i in range(0, len(progresses)):
                progresses[i]=progresses[i]+speeds[i]
                # 작업 전체에 계속 더한다
            if count>0:
            # 작업 끝난 수를 표시
                answer.append(count)
                # 끝난 작업들을 모아 answer에 더한다
                count=0
        else:
        # 작업량이 100이 된 것만
            progresses.pop(0)
            speeds.pop(0)
            count+=1
            # 작업 끝난 수를 더하기
    
    answer.append(count)
    # 작업 량 하나를 answer에 못 더한것을 더한다
    return answer


문제 푸는 언어를 그냥 파이썬으로 바꿔버렸다.

카카오페이 코딩테스트를 풀어보니 자바보다 파이썬이 문제풀이로는 제격인 것 같다.

더 좋은게 있는데 왜 아직까지 안 썼을까..

 

def solution(progresses, speeds):
    answer = []
    count=0
    time=0
    
    while progresses:
        if progresses[0]+(time*speeds[0])<100:
        # 아예 time으로 시간을 더해버렸다
            if count>0:
            # 카운트가 클 경우는 답에 더해줘야된다
                answer.append(count)
                count=0
            time+=1
        else:
            progresses.pop(0)
            speeds.pop(0)
            count+=1
    
    answer.append(count)
    return answer

 

코드를 다시 짜서 보는 경우가 없는데

요새 시간 복잡도가 중요한 것 같아 다른 사람들의 풀이를 보고

나도 for문을 없앰으로써 n^2이 아니라 n+1으로 고쳤다.

'코딩테스트' 카테고리의 다른 글

[2022-03-24] 유기농 배추  (0) 2022.03.24
[2021-09-10] 복서 정렬하기  (0) 2021.09.11
[2021-07-13] 예산  (0) 2021.07.13
[2021-07-12] 숫자 문자열과 영단어  (0) 2021.07.12
[2021-06-15] 내적  (0) 2021.06.15
'코딩테스트' 카테고리의 다른 글
  • [2022-03-24] 유기농 배추
  • [2021-09-10] 복서 정렬하기
  • [2021-07-13] 예산
  • [2021-07-12] 숫자 문자열과 영단어
jun96
jun96
프로그래밍 공부
  • jun96
    jun의 공부노트
    jun96
  • 전체
    오늘
    어제
    • 분류 전체보기 (66)
      • Spring (6)
        • 개념 (3)
        • 에러 (1)
      • Java (1)
      • Book (20)
        • 모던 자바 인 액션 (12)
        • 디자인 패턴의 아름다움 (7)
      • Algorithm (1)
      • 코딩테스트 (35)
      • 일상 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 이력서
  • 공지사항

  • 인기 글

  • 태그

    aws에 배포하기
    junit5
    wikidocs
    백준
    DeepDive
    자바
    스프링
    알고리즘
    디자인패턴의아름다움
    Algorithm
    aws배포
    Java
    도커컨테이너빌드업
    프로그래머스
    datetime
    아직 미완성
    모던자바인액션
    최프
    전자정부프레임워크
    python설치
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
jun96
[2021-07-25] 기능개발 (lv2)
상단으로

티스토리툴바