이숭간 공부기록
[프로그래머스] 자바/파이썬 _ 기능개발 본문
728x90
https://programmers.co.kr/learn/courses/30/lessons/42586
문제유형 : 스택
문제풀이 :
정답코드(파이썬):
from collections import defaultdict
def solution(progresses, speeds):
answer = []
daycount = defaultdict(int)
# progresses가 빌때까지 100이 안넘을때만 시간을 1씩 증가시키면서 더해준다.
# 더해가면서 맨앞의것이 100이넘었다면 해당 time을 인덱스로하는 배열에 1을 더해준다.
time = 1
while progresses:
if(progresses[0]+time*speeds[0] < 100):
time += 1
continue
progresses = progresses[1:]
speeds = speeds[1:]
daycount[time] += 1
return list(daycount.values())
정답코드(자바) :
import java.util.ArrayList;
import java.util.List;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
List<Integer> answerList = new ArrayList<>();
int[] dayCount = new int[100];
int day = 0;
for(int i=0; i<progresses.length; i++){
while(progresses[i] + (day*speeds[i]) < 100){
day += 1;
}
dayCount[day] += 1;
}
for(int i=0; i<dayCount.length; i++){
if(dayCount[i]==0){
continue;
}else{
answerList.add(dayCount[i]);
}
}
int[] answer = new int[answerList.size()];
for(int i=0; i<answerList.size(); i++){
answer[i] = answerList.get(i);
}
return answer;
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 파이썬 _ 큰 수 만들기 (0) | 2021.07.12 |
---|---|
[프로그래머스] 파이썬 _ 등굣길 (0) | 2021.07.12 |
[프로그래머스] 파이썬 _ 뉴스 클러스터링 (0) | 2021.07.08 |
[프로그래머스] 파이썬 _ 표 편집 ( 2021 KAKAO INTERN) ( 효율성 통과 X) (0) | 2021.07.08 |
[프로그래머스] 파이썬 _ 가장먼 노드 (0) | 2021.07.07 |