본문 바로가기
알고리즘 풀이

블록 탑 쌓기 위한 최소 에너지 구하기 C++

by yeni_0224 2025. 3. 30.
728x90
반응형

https://www.biko.kr/problem/1220

 

무료 프로그래밍 학습 플랫폼 BIKO

코딩의 기초부터 심화까지 단계별로 공부해 보세요!

www.biko.kr

 

게임 인재원 들어올 때 팀플로 나왔던 문제를 코드로 옮기는 미션을 받았다.

머리로는 알겠는데 구현이 안되는 답답함을 탑재하고 문제풀이를 시작한다.

 

언리얼 C++에 익숙해진 머리를 오리지널 C++로 옮기고 거기에 CS를 추가하는 것까지 해야하는데

쉽지는 않지만 느낌으로 개발하라던 뻘소리보다는 지금 공부하는 이 상황이 훨씬 낫다. 오히려 감사하다.

단지 내 머리가 깨질 뿐 :)

#include <iostream>

int myabs(int diff)
{
   return diff < 0 ? -diff : diff;
}

int main()
{
    int blocks[9] = { 7, 5, 3, 4, 2, 4, 6, 1, 2 };
    int costs[9] = { 1, 2, 4, 2, 1, 3, 4, 5, 3 };

    int result[9] = { 0, };
    int min = 100;
    int check = 0;

    for (int i = 0; i < 9; i++) //맞출 층 수
    {
        int energySum = 0;
        for (int j = 0; j < 9; j++) // 블럭 수
        {
            energySum += costs[j] * myabs(blocks[j] - i);
        }
        result[i] = energySum;
    }
    
    for (int i = 0; i < 9; i++)
    {
        if (min > result[i])
        {
            min = result[i];
            check = i;
        }
    }

    std::cout << min << " ";
    std::cout << "Min Floor : " << check;

    return 0;
}
728x90
반응형

'알고리즘 풀이' 카테고리의 다른 글

C++ 오답 노트  (0) 2025.03.30