https://www.acmicpc.net/problem/2839

 

심심해져서 또 블로그에 글 하나 쓰려고 백준

예전에 실패한 문제에 이게 있길래 또 시작 

문제는 입력된 정수를 3과 5로의 묶음으로 나누어 최소갯수로 만드는문젠데...

 

이거 공약수 문젠거같다... 배운지 너무 오래되서 기억도 잘안나서 예전기억을 되살려 뭔가 수학적 함수로 만들어서 구하는건 시작도 안하고 포기

 

그냥 단순하게 5로 크게 나눠서 나머지는 3으로!

이게 안된다면 될때까지 반복!

끝날 기미가 안보이면 그냥 -1 

 

이렇게 간략하게 생각하고 시작

#include <stdio.h>
#include <stdbool.h>

/**
 q2839 설탕 배달
 */

#define BIG 5
#define SMALL 3

void solution(int n) {
    // 1. N을 입력받는다.
    
    // 2. 5와3 으로 나누고 나머지를 남긴다
    int big = n / BIG;
    int rBig = n % BIG;
    int small = rBig / SMALL;
    int rSmall = rBig % SMALL;
    
    while(rBig != 0 && rSmall != 0) {
        // big에서 하나씩 줄여서 small을 늘리는식으로 반복해보자
        big -= 1;
        rBig += BIG;
        if (big < 0) {
            // big을 아무리 줄여도 정상적인 값이 나오지 않는 경우 -1
            printf("-1\n");
            return;
        }
        
        small = rBig / SMALL;
        rSmall = rBig % SMALL;
    }
    

    // 3. 결과 출력
    printf("%d\n", big + small);

    return;
}

int main(int argc, const char * argv[]) {
    int n = 0;
    scanf("%d", &n);
    
    solution(n);
        
    return 0;
}

 

뭔가 문제가 있을거같아서 일단 채점을 받아봤건만

통과해버렸다

BIG이랑 SMALL은 딱히 안해줘도 되는데 괜히 하고싶은 기분이 들어서 ㅋㅋㅋ 

이번엔 입력을 main에서 받아서 넘기는식으로 해줘봤다 예시를 배열로 만들어 반복문으로 돌리는데 편해서 만족

 

5와 3으로 딱 맺어지는 부분은 뭔가 문제가 있을거같지만 귀찮아져서 그만 두련다

나중에 지피티에게 코드리뷰 해달라고해야지 

 

 

https://github.com/wiwi-git/c-baekjoon

 

GitHub - wiwi-git/c-baekjoon: 블로그 업데이트용 백준 코드

블로그 업데이트용 백준 코드. Contribute to wiwi-git/c-baekjoon development by creating an account on GitHub.

github.com

 

ps. 레포지토리에 2558번도 추가되었는데이게 단순히 a와 b를 받아서 a+b출력하는 문젠데 이게 왜 시도했지만 실패한 문제에 들어가있는지 모르겠다. 모르겠지만 남겨두기 찝찝해서 일단 제출하고 레포지토리에 추가 했지만 블로그에 올리기에 내용이 없어도 너무 없어서 다른 문제 ps로 올림.

 

반응형

'C,C++' 카테고리의 다른 글

[C]백준 Q.17427 약수의 합 2  (0) 2025.12.13
[C]백준 Q.1037 약수  (0) 2025.12.12
[C]백준 Q.4375 1  (0) 2025.12.11
[C]백준 Q.1924 2007년  (0) 2025.12.07
[C]백준 Q.17479 재귀함수가 뭔가요?  (0) 2025.12.01

+ Recent posts