알고리즘/백준-브론즈

백준 2979번 트럭주차 (C++)

뜨거운 개발자 2022. 12. 29. 09:10

문제

정답 코드

#include <iostream> 
#include <algorithm> 
using namespace std;  
int main() 
{ 
    int A,B,C; 	
    cin >> A >> B>> C; 	
    int come[3]; 
    int out[3]; 	
    for (int i = 0; i < 3; i++) 
    {
        cin >> come[i] >> out[i];} 	
        sort (come, come+3); 	
        sort(out, out+3); 	
        int level = 0;
        int cost = 0; 
        for (int i=0; i < out[2];i++) 
        { 		
            for (int j = 0; j < 3; j++) 
            { 			
                if (come[j] == i) 	
                level++; 		
                if (out[j] == i) 			
                level--; 	
            } 	
            if (level == 1) 	
            cost +=(level *A); 	
            else if (level == 2) 	
            cost += (level * B); 		
            else if (level == 3) 		
            cost += (level *C); 	
        } 
        cout << cost <<"\n";
    }

문제 풀이의 흐름

  1. 문제를 재해석해서 들어올 때마다 갯수를 증가시키고 나갈때마다 갯수를 줄인다.
  1. 각 갯수에 맞는 값을 곱해서 한대일 때 2대일때 3대일 때 0대일때 각각의 1씩 시간을 보면서 비용을 계산했다.

주의 할 점

overflow나 시간 초과에 대한 걱정이 조금 있었지만 난이도가 낮은 문제라 딱히 문제가 없었다.

반성 및 고찰

컴파일 에러가 자꾸 떠서 뭐가 문제인지 몰랐는데 sort함수를 쓰는데 algorithm헤더를 추가하지 않아서 자꾸 문제가 발생했었다.

놀랍게도 헤더를 추가하지 않았어도 컴파일이 내 맥에서는 작동을 했었다. 앞으로 사용한 함수를 쓸 때마다 헤더를 먼저 추가했는지 확인해야겠다.


Uploaded by

N2T
728x90