일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Win32
- Programming
- Windows
- Javascript
- 백준
- 리뷰
- c
- Visual Studio
- Direct2D
- Tips강좌
- 프로그래밍
- 함수
- 알고리즘
- CS
- tipssoft
- c#
- c++
- 포인터
- VS ERROR
- 연산자
- Tips프로그래밍강좌
- doit코틀린프로그래밍
- 김성엽
- Desktop
- Kotlin
- 배열
- 티스토리
- 문법
- 지식나눔강좌
- 이지스퍼블리싱
- Yesterday
- Today
- Total
목록BaekJoon (6)
F.R.I.D.A.Y.
11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 입력받은 동전들의 가치로 입력받은 금액을 만드는 동전 개수에서 가장 개수가 적은 값을 출력하는 문제입니다. 문제의 알고리즘 분류를 보면 과 이 들어가 있습니다. 문제 해결에 앞서 그리디 알고리즘에 대해 알아봅니다. 그리디 알고리즘 그리디 알고리즘을 간단히 설명하면 현재 상황에서 가장 최선의 값을 선택하는 알고리즘으로 아래와 같은 상황에서 A 루트를 선택하는 경우입니다. 전체를 보았을 때 B 루트가 최..
10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다. www.acmicpc.net 이번에는 BAEKJOON 10845번이자 대표적인 선입선출의 구조를 같은 큐(Queue) 문제를 풀어봅니다. Code. #include #include typedef struct{ int *arr; // 데이터 메모리 포인터 int maxLength;// 가용 가능한 공간 길이 int length; // 현재 데이터가 담긴 길이 }queue; // 큐의 정보를 담은 스트럭처 queue* newQueue(int m..
스택을 이용하는 문제라고는 하지만 잘 생각해보면 굳이 스택을 사용하지 않아도 되는 문제입니다. 문제의 핵심은 결국 괄호의 특성을 이해하는 것이라고 생각합니다. 결국 괄호가 제 기능을 하기 위해서는 여는 괄호( 와 닫는 괄호) 가 1대 1로 잘 맞아 떨어져야합니다. 단순히 숫자가 맞아야하는 것이 아니라, 앞서 여는 괄호가 n개 나왔다면 뒤에 닫는 괄호는 여는 괄후 수만큼, 즉 n개가 나와야합니다. 생각을 해보면 스택을 이용하지 않아도 됩니다. 정수를 저장하는 변수를 선언하여 여는 괄호를 만나면 1 올려주고, 닫는 괄호를 만나면 1 내려주면 됩니다. 이 변수의 값이 0보다 작으면 바로 문제에서 설명하는 올바르지 않은 괄호 문자열(VPS)가 아닌게 되는 것입니다. 위에서 설명한 변수가 아래에서는 parenth..
모든 수에 대해 연산을 행하면 속도가 느려지므로 이미 연산을 진행한 데이터를 보관하는 공간을 만들어 연산이 이루어진 숫자라면 시행하지 않도록 코드를 짜는 것이 유리하다. 편하게 재귀함수로 작성을 했지만 재귀함수를 사용하지 않더라도 충분히 작성이 가능하므로 블로그의 코드를 이해했다면 재귀함수를 일반 함수로 구성해보는 것도 좋겠다. Code. #include #include #include void ret(int* memo, int val){ int sum = val; while(val){ sum += val % 10; val /=10; } if(sum < 10000){ memo[sum] = 1; ret(memo, sum); } } int main(void){ int *memo = (int *)malloc(..
이 문제가 약간 부실하다고 생각한게, 혹은 유사한 문제를 풀다가 이 문제를 보아서인지는 모르겠지만, 처음 이게 무슨 말인가 했다. 123456 이라는 숫자가 있다면 각 자리수는 다음과 같다. 1 2 3 4 5 6 이 각 자리수의 차이가 일정한 숫자를 찾는 것이 주어진 문제이다. Code. #include int main(void){ int num; scanf("%d", &num); int i = 1, hanCount = 0; while(i
Q. https://www.acmicpc.net/problem/4999 #define _CRT_SECURE_NO_WARNINGS #include #include int main(void) { int jaeC, docC, length; jaeC = docC = length = 0; char jae[1001], doc[1001]; scanf("%s", jae); length = strlen(jae); for (int i = 0; i < length; i++) { if (jae[i] == 'a') { jaeC++; } } scanf("%s", doc); length = strlen(doc); for (int i = 0; i < length; i++) { if (doc[i] == 'a') { docC++; } ..