알고리즘/2023 구름톤 챌린지

구름톤 챌린지 1주차 - 1

hw-ani 2023. 8. 16. 15:00

2023.08.14.(월)

#include <stdio.h>
int main() {
    long double W=0, R=0;
    scanf("%Lf %Lf", &W, &R);
    printf("%d", (int) ( W*(1+(R/30)) ) );
    return 0;
}

일단 계산을 할 때는 정확하게 계산해야해서 실수형 type의 변수를 선언하여 사용했습니다.

출력할 때는 소숫점을 바리라고 하여 (int)로 casting 후 출력했습니다.

 

 

 


2023.08.15.(화)

#include <stdio.h>

void calculate(int *T, int *M, int c[], int size_c) {
    int sum = 0;
    for (int i=0; i<size_c; i++) {
        sum += c[i];
    }
	
    int time = (*T)*60 + (*M);
    time += sum;
    time %= 1440;
    *T = time / 60;
    *M = time % 60;
}

int main() {
    int N, T, M;
    int c[102];
    scanf("%d %d %d", &N, &T, &M);
	
    for (int i=0; i<N; i++) {
        scanf("%d", &c[i]);
    }
	
    calculate(&T,&M,c,N);
	
    printf("%d %d", T, M);
	
    return 0;
}

계산하는 로직이 좀 길어질 것 같아 calculate()라는 별도 함수로 빼서 작성했습니다.

일단 현재 주어진 시간을 분단위로 계산한 다음, 덧셈을 진행했습니다. 그리고 하루가 1440분이니 24시간 단위로 자르기 위해 덧셈 결과에 mod 연산을 적용해줬습니다.

그러면 최종 시간이 분 단위로 계산되므로 60으로 나누기와 나머지 연산을 하여 결과를 구해주면 됩니다.

 

 

 


2023.08.16.(수)

#include <stdio.h>
int main() {
    int operand1, operand2;
    char operator;
	
    int T;
    scanf("%d", &T);
	
    int sum = 0, temp = 0;
    for (int i=0; i<T; i++) {
        scanf("%d %c %d", &operand1, &operator, &operand2);

        switch (operator) {
            case '+' : temp = operand1+operand2; break;
            case '-' : temp = operand1-operand2; break;
            case '*' : temp = operand1*operand2; break;
            case '/' : temp = operand1/operand2; break;
        }
        sum += temp;
    }
	
    printf("%d", sum);
	
    return 0;
}

scanf로 피연산자 두개와 연산자를 입력받습니다. 피연산자 종류에 따라 연산을 수행해주고, 그 결과를 sum에 누적합니다.

 

'알고리즘 > 2023 구름톤 챌린지' 카테고리의 다른 글

구름톤 챌린지 2주차 - 2  (2) 2023.08.27
구름톤 챌린지 2주차 - 1  (0) 2023.08.24
구름톤 챌린지 1주차 - 2  (0) 2023.08.18