[코딩테스트] 기능개발

시나브로·2021년 6월 14일
0

코딩테스트

목록 보기
6/34
post-thumbnail

문제


기능개발 문제 바로가기



제출 코드(Java)


코드 제출

import java.util.*;

class Solution {
    public static int[] solution(int[] progresses, int[] speeds) {
 	Map<Integer, Integer> resultMap = new TreeMap<>();
        int days = 0;

        for (int i = 0; i < progresses.length; i++) {
            double mock = (double)(100 - progresses[i])/speeds[i];
            int tmpDays = (int)Math.ceil(mock);
            days = days > tmpDays ? days : tmpDays;
            resultMap.put(days, resultMap.getOrDefault(days, 0) + 1);
        }

        int[] result = new int[resultMap.size()];
        int idx = 0;
        for (int i : resultMap.values()){
            result[idx++] = i;
        }

        return result;
	}
}

작업 완료 일수 계산식을 구해 반복문을 최소화했다


정확성 테스트

정확성  테스트
테스트 1 〉	통과 (4.23ms, 52MB)
테스트 2 〉	통과 (1.92ms, 52.3MB)
테스트 3 〉	통과 (0.85ms, 52MB)
테스트 4 〉	통과 (1.87ms, 53.1MB)
테스트 5 〉	통과 (1.78ms, 52.6MB)
테스트 6 〉	통과 (1.93ms, 52.7MB)
테스트 7 〉	통과 (1.67ms, 52.5MB)
테스트 8 〉	통과 (0.74ms, 52.9MB)
테스트 9 〉	통과 (2.41ms, 52.8MB)
테스트 10 〉	통과 (4.36ms, 52.5MB)
테스트 11 〉	통과 (0.75ms, 53.5MB)






제출 코드(Python)


코드 제출

import math

def solution(progresses, speeds):
    day = 0
    result = {}
    for p, s in zip(progresses, speeds):
        mok = math.ceil((100 - p) / s)
        day = day > mok and day or mok
        if (result.__contains__(day)):
            result[day] += 1
        else:
            result[day] = 1

    return list(result.values())

java와 비슷한 구현 방식이지만 코드 라인이 줄어든게 눈에 띈다


정확성 테스트

정확성  테스트
테스트 1 〉	통과 (0.01ms, 10.1MB)
테스트 2 〉	통과 (0.05ms, 10.1MB)
테스트 3 〉	통과 (0.04ms, 10.3MB)
테스트 4 〉	통과 (0.02ms, 10.1MB)
테스트 5 〉	통과 (0.01ms, 10.2MB)
테스트 6 〉	통과 (0.01ms, 10.2MB)
테스트 7 〉	통과 (0.04ms, 10.3MB)
테스트 8 〉	통과 (0.01ms, 10.1MB)
테스트 9 〉	통과 (0.03ms, 10.2MB)
테스트 10 〉	통과 (0.04ms, 10.2MB)
테스트 11 〉	통과 (0.01ms, 10.2MB)



profile
Be More!

0개의 댓글