[코딩테스트] 주식가격

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

코딩테스트

목록 보기
8/34
post-thumbnail

문제


주식가격 문제 바로가기



제출 코드(Java)


코드 제출

import java.util.*;

class Solution {
    public int[] solution(int[] prices) {

        int[] result = new int[prices.length];

        for (int i = prices.length - 1; i >= 0; i--) {
            int price = prices[i];
            int cnt = 0;
            for (int j = i+1; j < prices.length; j++) {
                cnt++;
                if (price > prices[j]) { break; }
            }
            result[i] = cnt;
        }

        return result;
    }

}

Index를 통해 어렵게 풀어내가다 그냥 돌아가지 않고 쉽게 풀어냈다


정확성 테스트

정확성  테스트
테스트 1 〉	통과 (0.03ms, 52.1MB)
테스트 2 〉	통과 (0.02ms, 53.1MB)
테스트 3 〉	통과 (0.16ms, 52.3MB)
테스트 4 〉	통과 (0.19ms, 52.8MB)
테스트 5 〉	통과 (0.23ms, 52.9MB)
테스트 6 〉	통과 (0.02ms, 52.1MB)
테스트 7 〉	통과 (0.11ms, 53.2MB)
테스트 8 〉	통과 (0.12ms, 52.6MB)
테스트 9 〉	통과 (0.02ms, 51.8MB)
테스트 10 〉	통과 (0.23ms, 53.3MB)
효율성  테스트
테스트 1 〉	통과 (13.76ms, 71.7MB)
테스트 2 〉	통과 (9.47ms, 66.4MB)
테스트 3 〉	통과 (18.10ms, 76.9MB)
테스트 4 〉	통과 (13.35ms, 72.5MB)
테스트 5 〉	통과 (8.22ms, 65.1MB)




제출 코드(Python)


코드 제출

def solution(prices):
    pricesLen = len(prices)
    result = [0] * pricesLen

    for i in range(0, pricesLen):
        cnt = 0
        for j in range(i+1, pricesLen):
            cnt += 1
            if prices[i] > prices[j]:
                break

        result[i] = cnt

    return result

java와 같은 구현 방식.


정확성 테스트

정확성  테스트
테스트 1 〉	통과 (0.01ms, 10.1MB)
테스트 2 〉	통과 (0.10ms, 10.2MB)
테스트 3 〉	통과 (0.91ms, 10.2MB)
테스트 4 〉	통과 (0.94ms, 10.3MB)
테스트 5 〉	통과 (1.13ms, 10.2MB)
테스트 6 〉	통과 (0.04ms, 10.2MB)
테스트 7 〉	통과 (0.55ms, 10.3MB)
테스트 8 〉	통과 (0.66ms, 10.1MB)
테스트 9 〉	통과 (0.04ms, 10.1MB)
테스트 10 〉	통과 (1.19ms, 10.3MB)
효율성  테스트
테스트 1 〉	통과 (107.37ms, 18.9MB)
테스트 2 〉	통과 (85.96ms, 17.5MB)
테스트 3 〉	통과 (167.30ms, 19.4MB)
테스트 4 〉	통과 (103.99ms, 18.2MB)
테스트 5 〉	통과 (64.28ms, 16.9MB)

java보다 효율성 테스트에서는 성능이 안나오는 것을 볼 수 있다.
배열 내 mapping문제인가,,, 항상 코테에서는 파이썬이 압도적인 속도를 보이고 있던 터라 적잖이 당황스럽다. 이 부분은 확인해야할 문제

profile
Be More!

0개의 댓글