😎 κ³΅λΆ€ν•˜λŠ” μ§•μ§•μ•ŒνŒŒμΉ΄λŠ” μ²˜μŒμ΄μ§€?

[이것이 μ½”λ”© ν…ŒμŠ€νŠΈλ‹€ with Python]_12_그리디 μ•Œκ³ λ¦¬μ¦˜ λ³Έλ¬Έ

πŸ¦₯ μ½”ν…Œ/이것이 μ½”λ”© ν…ŒμŠ€νŠΈλ‹€ with python

[이것이 μ½”λ”© ν…ŒμŠ€νŠΈλ‹€ with Python]_12_그리디 μ•Œκ³ λ¦¬μ¦˜

μ§•μ§•μ•ŒνŒŒμΉ΄ 2022. 1. 31. 19:36
728x90
λ°˜μ‘ν˜•

220131 μž‘μ„±

<λ³Έ λΈ”λ‘œκ·ΈλŠ” γ€Žμ΄κ²ƒμ΄ 취업을 μœ„ν•œ μ½”λ”© ν…ŒμŠ€νŠΈλ‹€γ€ μ˜ youtubeλ₯Ό μ°Έκ³ ν•΄μ„œ κ³΅λΆ€ν•˜λ©° μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€>

https://www.youtube.com/watch?v=5OYlS2QQMPA&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81&index=12 

 

 

 

 

1. 그리디 μ•Œκ³ λ¦¬μ¦˜ (νƒμš•λ²•)

: ν˜„μž¬ μƒν™©μ—μ„œ μ§€κΈˆ λ‹Ήμž₯ 쒋은 κ²ƒλ§Œ κ³ λ₯΄λŠ” 방법

: μ •λ‹Ήμ„± 뢄석 μ€‘μš”

: μ΅œμ†Œν•œμ˜ 아이디어λ₯Ό λ– μ˜¬λ¦΄ 수 μžˆλŠ” λŠ₯λ ₯

 

 

 

 

ex) 500, 100, 50, 10 μ›μœΌλ‘œ μ΅œμ†Œ λ°©λ²•μœΌλ‘œ 돈 거슬러 μ£ΌκΈ°

- κ°€μž₯ 큰 화폐 λ‹¨μœ„ λΆ€ν„° ~ ( 큰 λ‹¨μœ„κ°€ 항상 μž‘μ€ λ‹¨μœ„μ˜ λ°°μˆ˜μ΄λ―€λ‘œ,, )

  • python
n = 1260 		# 거슬러 μ€˜μ•Όν•  돈
count = 0

# 큰 λ‹¨μœ„ 화폐뢀터 확인
array = [500, 100, 50, 10]

for coin in array :
	count += n // coin 		# ν•΄λ‹Ή ν™”νλ‘œ 거슬러 쀄 수 μžˆλŠ” 동전 개수 μ„ΈκΈ°
    n % coin
    
print(count)
  • c++
# include <bit/stdc++.h>

using namespace std;

int n = 1260;
int cnt ;

int coinTypes[4] = {500, 100, 50, 10};

int main(void) {
	for (int i=0; i< 4; i++) {
	    cnt ++ n / cointTypes[i];
    	n %= coinTypes[i];
    }
    cout << cnt >> "\n';
}
  • java
public class Main {

	public static void main(String[] args) {
    	int n = 1260;
		int cnt ;
		int[] coinTypes = {500, 100, 50, 10};
		
        for (int i=0; i< 4; i++) {
	    	cnt ++ n / cointTypes[i];
    		n %= coinTypes[i];
  	    }
        System.out.println(cnt);
}

=> μ‹œκ°„ λ³΅μž‘λ„λŠ” O(k)

=> λ™μ „μ˜ 총 μ’…λ₯˜μ— 영ν–₯ λ°›μŒ

 

 

 

 

 

 

 

 

 

 

728x90
λ°˜μ‘ν˜•
Comments