Baekjoon
![[11052] 카드 구매하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHQLY9%2Fbtq9weVMjjT%2FR8NCZpyGbcGik5SaWfpPOK%2Fimg.png)
[11052] 카드 구매하기
https://www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 🔎 해결 방법 예를 들어 민규가 구매하고자 하는 카드의 개수가 4개라면, 가능한 조합은 4 / 3 + 1 / 2 + 2 / 2 + 1 + 1 / 1 + 1 + 1 + 1 이므로 자연수의 분할로 접근하면 되는 줄 알았다. 그러면 각 경우는 위와 같이 계산하면 되는데 2 +2 가 문제였다. dp를 생각하지 못하고 2 + 2를 계속 p[2] + p[2]라고 계산하는 바람에 점화식을 세울 수 없었다. 하지만! ..
![[2675] 문자열 반복](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuuZXI%2FbtqDliwr6A4%2FmEcnWZiBNRpqpD3eG08kfK%2Fimg.png)
[2675] 문자열 반복
https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. 입력 첫째 줄에 테스트 케이스의 개수 T(1 www.acmicpc.net 💡내 코드 Ver.1 (C) // [2675] 문자열 반복 // https://www.acmicpc.net/problem/2675 #i..
[5585] 거스름돈(C++)
문제 5585번: 거스름돈 문제 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오. 예를 들어 입력된 예1의 경우에는 아래 그림에서 처럼 4개를 출력해야 한다. 입력 입력은 한줄로 이루어져있고, 타로가 지불할 www.acmicpc.net 내 코드(C++) // [5585] 거스름돈 // https://www.acmicpc.net/problem/5585 #include using namespace std; int main(void) ..
![[1003] 피보나치 함수(C++)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnhyJ1%2Fbtq9lny1sg8%2Fq6VEFk9I4kExiYNWZXgK7K%2Fimg.png)
[1003] 피보나치 함수(C++)
https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 🔎 해결 방법 fibo(n) = fibo(n-1) + fibo(n-2) 인 것과 마찬가지로 0과 1이 출력되는 횟수도 이전의 두 개를 더해주면 된다. 즉, 점화식은 1. dp[n][0] = dp[n-1][0] + dp[n-2][0] 2. dp[n][1] = dp[n-1][1] + dp[n-2][1] 이렇게 두 가지를 사용하면 된다. 💡내 코드(C++) // [1003] 피보나치 함수 // https://www.acmicpc.net/problem/1003 #include using namespa..
[10844] 쉬운 계단 수
https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 🔎 해결 방법 dp[1] = 9 dp[2] = 17 dp[3] = 32 dp[4] = 61 까지 찾고 점화식은 dp[i] = dp[i-1] * 2 - 1 이네! 하고 제출했는데 자꾸 틀렸다고 떠서 질문들을 찾아보니....전부 dp를 2차원으로 선언했길래 굳이 2차원까지 써야 돼? 나는 1차원으로 해결하겠어...라며....1차원으로 하다가... 결국 2차원으로 선언했다.ㅎㅎ 이건 가지치기로 나타내서 보면 이해하기가 쉬운데, 아래의 그림을 보자. 우선 이 문제에서 dp는 dp[길이][최고 자리 수] 로 정의했다. ..
[10809] 알파벳 찾기
문제 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. www.acmicpc.net 💡 내 코드 Ver.1(C) // [10809] 알파벳 찾기 // https://www.acmicpc.net/problem/10809 #include #include int main(void) { char s[100], cnt[26]; for(int i = 0 ; i < 26 ; i++) cnt[i] = -1; scanf("%s", s); for(int i = 0 ..
![[2775] 부녀회장이 될테야](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJ1QZJ%2FbtqE9JGtgdH%2FoeWHqXuCU2FA2WCyHB9Vk1%2Fimg.png)
[2775] 부녀회장이 될테야
https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다. (1
[2908] 상수
https://www.acmicpc.net/problem/2908 2908번: 상수 문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 www.acmicpc.net 💡 내 코드(C) Ver.1 /* 상수 */ #include int main(void) { int a[3], b[3], n = 1; int ..