발효홍삼
코딩하는 홍삼
발효홍삼
전체 방문자
오늘
어제
  • 분류 전체보기 (142)
    • PS (63)
      • 프로그래머스 (9)
      • 코드업 (10)
      • 백준 (43)
      • 알고스팟 (1)
    • Programming Language (11)
      • html_css (2)
      • java (0)
      • c,c++ (2)
      • vanillajs (2)
      • react (0)
      • vue.js (0)
      • angular.js (0)
      • electron (3)
      • 엄랭(Umjunsik-lang) (1)
      • F# (1)
      • Node.js (0)
      • Go (0)
    • knowledge (41)
      • algorithm (3)
      • data structure (1)
      • os (1)
      • ML (1)
      • math (31)
      • paper review (0)
      • IT-license (4)
    • Programming Guide (27)
      • React (1)
      • Electron (2)
      • CSS , SASS ( SCSS ) , Tailw.. (3)
      • Node.js (1)
      • Go (1)
      • Ruby on Rails (2)
      • R (1)
      • PHP (1)
      • Docker (1)
      • JSP (1)
      • C# (1)
      • Django (1)
      • Flask (1)
      • Dart (1)
      • Next.js (1)
      • Vue.js (1)
      • Unity (1)
      • React Native (0)
      • Flutter (3)
      • GraphQL (1)
      • MongoDB (1)
      • .NET (1)
      • RUST (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 수학
  • 출력
  • c++
  • CSS
  • 코드업
  • 백준
  • 기초백제
  • 구현
  • 정보처리기능사
  • HTML
  • codeup
  • 프로그래머스
  • electron
  • 자바
  • JavaScript
  • 알고리즘
  • 기초100제
  • cpp
  • 적분
  • 미분
  • 이산수학
  • Python
  • LV1
  • 파이썬
  • 정보처리기능사 필기
  • js
  • C
  • nodejs
  • java
  • 미적분학

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
발효홍삼

코딩하는 홍삼

[ 백준 ] 5585번 : 거스름돈 - ( C++/C , JAVA/자바, PYTHON/파이썬, NODE.JS/자바스크립트 )
PS/백준

[ 백준 ] 5585번 : 거스름돈 - ( C++/C , JAVA/자바, PYTHON/파이썬, NODE.JS/자바스크립트 )

2022. 3. 1. 21:55
728x90
  • 문제

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

 

5585번: 거스름돈

타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사

www.acmicpc.net


  • 풀이법 ( 알고리즘 )

그리디 알고리즘의 기초 문제이다. 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있기 때문에 지불한 후 받을 돈에서 500엔, 100엔, 50엔, 10엔, 5엔, 1엔을 뺄 수 있을만큼 빼고 그 개수를 출력하면 될 듯하다.

 

아래 코드들을 본다면 아래로 갈 수록 코드가 깔끔해지고 있다. 여러번 문제를 풀다보니 조금 더 코드가 간결해진듯하다.


  • 풀이 - C++ ( C )
#include <iostream>

using namespace std;

int paid , cnt = 0; // paid : 타로가 이미 지불한 돈 , cnt : 잔돈의 개수

int main(void)
{
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	//input
	cin >> paid;

	paid = 1000 - paid;

	//solve
	if (paid >= 500)
	{
		while (paid >= 500) {
			paid -= 500;
			cnt++;
		}
	}
	if (paid >= 100)
	{
		while (paid >= 100) {
			paid -= 100;
			cnt++;
		}
	}
	if (paid >= 50)
	{
		while (paid >= 50) {
			paid -= 50;
			cnt++;
		}
	}
	if (paid >= 10)
	{
		while (paid >= 10) {
			paid -= 10;
			cnt++;
		}
	}
	if (paid >= 5) {
		while (paid >= 5) {
			paid -= 5;
			cnt++;
		}
	}
	if (paid >= 1) {
		while (paid >= 1) {
			paid -= 1;
			cnt++;
		}
	}

	//output
	cout << cnt;

	return 0;
}
  • 풀이 - JAVA
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int paid = sc.nextInt();
		paid = 1000 - paid;
		int cnt = 0;
		
        while(paid >= 500) {
            paid -= 500;
            cnt++;
        }
		
		
        while(paid >= 100) {
            paid -= 100;
            cnt++;
        }
		
		
        while(paid >= 50) {
            paid -= 50;
            cnt++;
        }
		
	
        while(paid >= 10) {
            paid -= 10;
            cnt++;
        }
        
		
        while(paid >= 5) {
            paid -= 5;
            cnt++;
        }
		
		
        while(paid >= 1) {
            paid -= 1;
            cnt++;
        }
		
		
		System.out.println(cnt);
	}
}
  • 풀이 - PYTHON
n = int(input())
n = 1000 - n
cnt = 0

while n >= 500:
    n -= 500
    cnt+=1
while n >= 100:
    n -= 100
    cnt+=1
while n >= 50:
    n -= 50
    cnt+=1
while n >= 10:
    n -= 10
    cnt+=1
while n >= 5:
    n -= 5
    cnt+=1
while n >= 1:
    n -= 1
    cnt+=1

print(cnt)
  • 풀이 - Node.js
let m = parseInt(require("fs").readFileSync("/dev/stdin").toString());
let nowM = 1000 - m;

const coin = [500,100,50,10,5,1];
let count = 0;
for(let i = 0; i < coin.length; i++)
{
    let tmp = Math.floor(nowM / coin[i]);
    nowM -= tmp * coin[i];
    count += tmp;
}
console.log(count);
728x90
저작자표시 비영리 (새창열림)

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

[ 백준 ] 10026번 : 적록색약 - ( C++/C )  (0) 2022.03.05
[ 백준 ] 1010번 : 다리놓기 - (C++/C , JAVA/자바 , PYTHON/파이썬 , Node.JS/자바스크립트 )  (0) 2022.03.03
[ 백준 ] 1026번 : 보물 - (C++/C, JAVA/자바, PYTHON/파이썬)  (0) 2022.02.28
[ 백준 ] 6603번 : 로또 - ( C++ / C , JAVA/자바, PYTHON/파이썬 )  (0) 2022.02.27
[ 백준 ] 2523번 : 별찍기 - 13 - ( C++ / C, JAVA/자바, PYTHON/파이썬 )  (0) 2022.02.27
    'PS/백준' 카테고리의 다른 글
    • [ 백준 ] 10026번 : 적록색약 - ( C++/C )
    • [ 백준 ] 1010번 : 다리놓기 - (C++/C , JAVA/자바 , PYTHON/파이썬 , Node.JS/자바스크립트 )
    • [ 백준 ] 1026번 : 보물 - (C++/C, JAVA/자바, PYTHON/파이썬)
    • [ 백준 ] 6603번 : 로또 - ( C++ / C , JAVA/자바, PYTHON/파이썬 )
    발효홍삼
    발효홍삼
    코딩하는 홍삼

    티스토리툴바