코딍코딍
코딩기록
코딍코딍
전체 방문자
오늘
어제
  • 분류 전체보기 (271)
    • 개발 (2)
    • Java (1)
    • 스프링 (28)
    • JPA (11)
    • Git (3)
    • 알고리즘 (160)
      • 백준 (132)
      • 프로그래머스 (8)
      • SWEA (20)
    • 토이 프로젝트 (14)
      • 간단한 Springboot CRUD (1)
      • 게시판 프로젝트 (13)
    • 알고리즘 개념정리 (8)
    • 오류 해결 (13)
    • 보류 (0)
    • AWS (5)
    • 트러블 슈팅 (0)
    • 회고 (3)
    • CS (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

최근 글

티스토리

hELLO · Designed By 정상우.
코딍코딍

코딩기록

알고리즘/백준

2839번 : 설탕 배달

2022. 7. 24. 13:08

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

 

2839번: 설탕 배달

상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그

www.acmicpc.net

 

 

문제

 

 

코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        int count=0;

        if(n<3 || n==4) {
            System.out.println(-1); return;
        }
        
        int t;
        if(n/5>0) {
            t=n/5;
            while(true) {
                if ((n - t * 5) % 3 == 0) break;
                t--;
                if(t<0) {
                    System.out.println(-1); return;
                }
            }
            n-=t * 5;
            count+=t;
        }

        if (n/3>0) {
            count+=n/3;
            n%=3;
        }

        System.out.println(count);
    }
}

 

 

해결방법

설탕을 나눌 수 있는 3가지 경우 5kg로만 배달, 5kg와 3kg로 배달, 3kg로만 배달을 고려하여 슈도코드를 작성하였다.

슈도코드

1. n값 입력받기
2. 만약 n이 3 미만이거나 n이 4일 경우 -1 출력 후 종료
3.만약 n이 5로 나누어질 때 (5kg로만 배달, 5kg와 3kg로 배달하는 경우를 계산, 3kg로만 배달하는 경우는 탈출 후 4번에서 계산가능)

      // t = n을 5로 나눈 몫
      1. 반복
            1. 만약 n을 (t * 5)로 뺐을 때 3으로 바로 나눠 떨어진다면 탈출 
            2. 아니면 t--
            3. 만약 3으로 한 번에 나눠지지 않는다면 출력 후 종료 (3으로 나눠떨어지면 t가 0일 때, 1번에서 탈출가능)
      2. n - (t * 5)
      3. count + (t)

4. 만약 n이 3으로 나누어질 때
      1. count + (3으로 나눈 최댓값)
      2. n%=3

5. count 출력

'알고리즘 > 백준' 카테고리의 다른 글

18870번 : 좌표 압축  (0) 2022.07.27
2012번 : 등수 매기기  (0) 2022.07.26
18310번 : 안테나  (0) 2022.07.23
10815번 : 숫자 카드  (0) 2022.07.20
11497번 : 통나무 건너뛰기  (0) 2022.07.20
    '알고리즘/백준' 카테고리의 다른 글
    • 18870번 : 좌표 압축
    • 2012번 : 등수 매기기
    • 18310번 : 안테나
    • 10815번 : 숫자 카드
    코딍코딍
    코딍코딍
    ㅎ2

    티스토리툴바