[백준] 14916번 : 거스름돈 (JAVA)

2026. 2. 23. 15:37·코테(Solved.ac + Programmers)
728x90

🔗 문제 링크

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


📌 문제 개요

2원과 5원 동전을 사용하여 n원을 만들 때
동전의 최소 개수를 구하는 문제이다.

만약 정확히 만들 수 없다면 -1을 출력


📌 접근 방법

  • 동전 개수를 최소로 하기 위해 5원을 먼저 최대한 사용
  • 남은 금액이 2원으로 나누어 떨어지는지 확인
  • 나누어 떨어지지 않으면 5원을 하나 줄이고 다시 확인
  • 5원 개수가 0보다 작아지면 만들 수 없는 경우

📌 핵심 아이디어

  • 5원을 최대한 사용하는 것이 동전 개수 최소에 유리하다.
  • 단, 남은 금액이 홀수라면 2원으로 만들 수 없다.
  • 따라서 5원 개수를 줄여가며 가능한 경우를 탐색

이 방식은 그리디(Greedy) 전략


📌 전체 코드

package no_14916;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class No14916 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n  = Integer.parseInt(br.readLine());
        int coin = n / 5;
        int result = 0;

        n = n % 5;

        while (coin >= 0){
            if(n % 2 == 0){
                result = coin + (n / 2);
                break;
            }
            coin--;
            n += 5;
        }

        if (coin < 0) {
            System.out.println(-1);
        } else {
            System.out.println(result);
        }
    }
}

📌 정리

  • 5원을 먼저 최대한 사용하는 것이 핵심
  • 남은 금액이 짝수인지 여부만 확인하면 된다
  • 만들 수 없는 경우(1, 3 등)는 -1 처리

그리디 기본기를 다지는 좋은 문제

728x90

'코테(Solved.ac + Programmers)' 카테고리의 다른 글

[백준] 11653번 : 소인수분해 (JAVA)  (0) 2026.02.26
[백준] 1343번 : 폴리오미노 (JAVA)  (0) 2026.02.26
[백준] 11004번 : K번째 수 (JAVA)  (0) 2026.02.22
[백준] 9655번 : 돌 게임 (JAVA)  (0) 2026.02.20
[백준] 17478번 : 재귀함수가 뭔가요? (JAVA)  (0) 2026.02.19
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
  • [백준] 11653번 : 소인수분해 (JAVA)
  • [백준] 1343번 : 폴리오미노 (JAVA)
  • [백준] 11004번 : K번째 수 (JAVA)
  • [백준] 9655번 : 돌 게임 (JAVA)
PUSH → MERGE → DEPLOY
PUSH → MERGE → DEPLOY
데이터 흐름과 운영 자동화를 설계하는 백엔드 개발자
  • PUSH → MERGE → DEPLOY
    Coding Dongin
    PUSH → MERGE → DEPLOY
  • 전체
    오늘
    어제
    • MEUN
      • 코테(Solved.ac + Programmers)
      • BootCamp(JAVA)
      • JAVA
      • SpringBoot
      • JavaScript
      • JSP
      • DB(SQL)
      • React
      • HTML_CSS
      • jQuery
      • SCSS
      • GSAP
      • 설치 + 꿀팁
      • 정보처리기사 오답노트
      • 정보처리기사 기출문제
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GIT
  • 공지사항

  • 인기 글

  • 태그

    정처기오답노트
    level1
    자료구조
    브루트포스
    코딩테스트
    Level2
    실기
    정보처리기사
    백준
    dp
    완전탐색
    알고리즘
    문자열
    level0
    정렬
    피보나치
    구현
    프로그래머스
    solved.ac
    정처기
    정보처리기사 실기 기출문제
    기출문제
    java
    백엔드개발자
    배열
    springboot
    시뮬레이션
    자바
    수학
    정처기실기
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
PUSH → MERGE → DEPLOY
[백준] 14916번 : 거스름돈 (JAVA)
상단으로

티스토리툴바