# 연관 링크
- [문제 풀이 스케줄](https://github.com/orgs/DaleStudy/projects/6/views/5)
- [답안 코드 제출법](https://github.com/DaleStudy/leetcode-study/wiki/%EB%8B%B5%EC%95%88-%EC%A0%9C%EC%B6%9C-%EA%B0%80%EC%9D%B4%EB%93%9C)

# Problem
- 문제 링크 : https://leetcode.com/problems/coin-change/description/
- 문제 이름 : Coin Change
- 문제 번호 : 322
- 난이도 : Medium
- 카테고리 : BFS

# 문제 설명


# 아이디어
- bfs

# ✅ 코드 (Solution)
```
class Solution {
public:
    int coinChange(vector<int>& coins, int amount) {
        if(amount==0){
            return 0;
        }
        vector<int> res(amount + 1, -1); 
        queue<int> q;
        for (auto coin : coins) {
            if (coin > amount) {
                continue;
            }
            if (coin == amount) {
                return 1;
            }
            res[coin] = 1;
            q.push(coin);
        }
        while (q.size()) {
            int curCoin = q.front(); 
            q.pop();
            int nextCount = res[curCoin] + 1; 
            for (auto coin : coins) {
                int nextCoin = curCoin + coin;
                if (nextCoin > amount) {
                    continue;
                }
                if (res[nextCoin] != -1) { 
                    continue;
                }
                if (nextCoin == amount) {
                    return nextCount;
                }
                res[nextCoin] = nextCount;
                q.push(nextCoin);
            }
        }
        return res[amount];
    }
};

```
# 🔍 코드 설명


# 최적화 포인트 (Optimality Discussion)
•	최적화한 이유와 원리
•	더 줄일 수 있는 여지는 있는가?
•	기존 방법 대비 얼마나 효율적이었는지

# 🧪 테스트 & 엣지 케이스

# 📚 관련 지식 복습

# 🔁 회고


