MS's log
  • HOME
  • TAG
  • GUESTBOOK
  • ADMIN
Close

Who am I?

  • github.com/mskim9967

Category

  • 분류 전체보기 (121)
    • 대회, 프로젝트 (21)
      • 2021 국방 공공데이터 경진대회 (1)
      • 2021 군장병 해커톤 (16)
      • 2021 UNI-DTHON (1)
    • Study (58)
      • Backend (29)
      • Infra, DevOps (9)
      • Frontend (14)
      • Data Structure (6)
    • Coding Test (40)
      • Codeforces (1)
      • 백준 (10)
      • codeground (19)
      • 프로그래머스 (9)

Recent Post

Popular Post

Comment

Tags

  • React Native
  • DevOps
  • 군대공부
  • rn

Visitor Counter

어제

오늘

전체

2294번 동전2
By _MS
Coding Test/백준
2021. 4. 17. 23:56

문제

문제 읽기

해결

  • DP

  • 모든 가치를 살펴봄

    • 현재 가치의 코인 갯수와 (현재가치 - 각 코인)의 가치 코인 갯수를 비교
  • $O(n\cdot k)$

소스코드

#include <bits/stdc++.h> 
#include <fstream>

using namespace std;

int n, k;
int cache[100010];
vector<int> coins;

int main(void) {
    freopen("input.txt", "r", stdin);
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(0);

    cin >> n >> k;

    for(int input = 0, i = 0; i < n; i++) {
        cin >> input;
        // do not push overlapped coin
        if(cache[input] == 0) coins.push_back(input);
        cache[input] = 1;
    }

    for(int i = 1; i <= k; i++)
        for(int coin : coins) {
            if(i - coin < 0 || cache[i - coin] == 0) continue;

            if(cache[i] == 0) cache[i] = cache[i - coin] + 1;
            else cache[i] = min(cache[i - coin] + 1, cache[i]);
        }

    cout << (cache[k] ? cache[k] : -1) << "\n";

    return 0;
}

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

12100번 / 2048 (Easy)  (0) 2021.06.13
15686번 / 치킨 배달  (0) 2021.04.23
14889번 / 스타트와 링크  (0) 2021.04.19
14888번 / 연산자 끼워넣기  (0) 2021.04.19
1890번 점프  (0) 2021.04.18
MS's log :: _MS
Contact
Github

Copyright MS's log

Designed by MemoStack

Unicons by Iconscout

티스토리툴바