[백준,BOJ 11047] 동전 0(JAVA 구현)

2020. 11. 26. 23:43·CodingTest/백준 온라인 저지(BOJ)
반응형

- 풀이

  이전에 풀었던 문제였지만, 블로그에 글을 게시하지 않았던 문제이다. 단계별 풀어보기의 그리디 알고리즘으로 분류되어 있는 첫 번째 문제이다. 그리디 알고리즘이란, 한 상황에서 취할 수 있는 최대 이득을 취하는 알고리즘이라 한다. 이러한 방식은 이전 분류인 동적 프로그래밍의 과정이 너무 많은 연산이 이루어지기 때문에 이를 보완하기 위해 고안된 알고리즘이라 한다. 한 상황에서 최선의 것을 선택하다 보니 최적의 해를 보장하지 않는다는 특징이 있다고 한다.

 

  그리디 알고리즘으로 분류되어 있는 특징처럼 문제에서 주어진 값 k를 최소한의 동전 개수로 이루기 위해서는 가장 높은 단위의 화폐부터 사용하면 최소한의 동전 개수를 사용하게 된다. 최소한의 동전 개수를 이루기 위해 가장 높은 단위의 화폐부터 사용한다는 점에서 최선의 선택인 그리디 알고리즘이라 할 수 있다고 생각한다.

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		
		// 동전의 종류 
		int n = in.nextInt();
		
		// 만들어야 하는 가치의 합
		int k = in.nextInt();
		
		int cnt =  0;
		
		// 동전들의 가치
		int a[] = new int[n];
		
		for(int i=0;i<n;i++) {
			a[i] = in.nextInt();
		}
		
		// 가장 높은 가치의 동전부터 탐색
		for(int i=n-1;i>=0;i--) {
			// 해당 가치가 k보다 작을 경우,
			if(a[i]<=k) {
				// 나눈 값이 해당 동전의 개수가 되고
				cnt += k/a[i];
				// 나머지를 다시 k로 대입하면 된다.
				k %= a[i];
			}
		}
		
		System.out.println(cnt);
		
		in.close();
	}

}
저작자표시 (새창열림)
'CodingTest/백준 온라인 저지(BOJ)' 카테고리의 다른 글
  • [백준,BOJ 11399] ATM(JAVA 구현)
  • [백준,BOJ 1931] 회의실 배정(JAVA 구현)
  • [백준,BOJ 12865] 평범한 배낭(JAVA 구현, 추가풀이)
  • [백준,BOJ 1912] 연속합(JAVA 구현,추가풀이)
뜸부깅
뜸부깅
코딩에 대한 여러 개인적인 생각을 정리하고 공부를 하는 공간입니다!!
  • 뜸부깅
    코오오딩
    뜸부깅
  • 전체
    오늘
    어제
    • Note (429)
      • Skill (31)
        • Java & Spring (9)
        • Javascript & HTML & CSS (0)
        • React (0)
        • Next.js (22)
      • CodingTest (389)
        • 백준 온라인 저지(BOJ) (140)
        • 프로그래머스(Programmers) (79)
        • LeetCode (170)
      • Algorithm & Data Structure (6)
      • [Project] 포트폴리오 (3)
        • Front end (3)
        • Back end (0)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    백준2751
    프로그래머스
    백준7576
    meidum
    백준7576자바
    BOJ
    백준
    TypeScript
    next 14
    Java
    medium
    leetcode 2236
    백준1427
    component-scan
    boj2108
    백준1260
    자바
    boj1427
    Easy
    알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
뜸부깅
[백준,BOJ 11047] 동전 0(JAVA 구현)
상단으로

티스토리툴바