[HackerRank] Marc's Cakewalk

곌로그·2023년 5월 10일
0

[python]코딩테스트

목록 보기
17/34
post-thumbnail

문제 링크


문제 요약

Greedy 문제이다.

Marc는 j 개의 컵 케이크를 먹고 각 컵 케이크의 칼로리들은 리스트로 제공된다. 맛있게 먹은 Marc는 먹은만큼의 칼로리를 소모하려고 한다.
각 컵케이크의 개별 칼로리에 따라 Marc가 체중을 유지하기 위해 걸어야하는 최소 거리를 결정하는 것이 문제다.
예시는 아래 이미지와 같다.


문제 풀이

#!/bin/python3

import math
import os
import random
import re
import sys


def marcsCakewalk(calorie):
    # Write your code here
    answer = 0
    calorie.sort(reverse = True)
    for i in range(0, len(calorie)):
        answer += math.pow(2, i) * calorie[i]
    
    return int(answer)

if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    n = int(input().strip())

    calorie = list(map(int, input().rstrip().split()))
    
    result = marcsCakewalk(calorie)

    fptr.write(str(result) + '\n')

    fptr.close()

📌 고려해야할 점

  • 가장 적은 거리를 Marc는 걸으려고 하는 것이기 때문에 리스트를 내림차순으로 정렬 후 계산해주면 된다.
  • 들어오는 칼로리의 길이가 1000개 정도라서 그냥 sort()를 이용해서 풀이했다.

🙄 느낀 점

이번에 준비하는 인턴십의 코딩테스트 플랫폼은 "Hacker Rank"라고 한다. 도대체 플랫폼이 왤케 다양하고 회사마다 보는 곳이 이렇게 다양한지 모르겠다. ㅠ

0개의 댓글