본문 바로가기

프로그래밍181

[기출문제] Table Calculator 2 보호되어 있는 글 입니다. 2021. 4. 10.
[백준] 5585번 문제풀이 문제 : www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 소스코드 : #define _CRT_SECURE_NO_WARNINGS #include int main(void) { int a; scanf("%d", &a); a = 1000 - a; int count = 0; if ((a / 500) >= 1) { count = count + (a / 500); a = a - ((a / 500) * 500); } if ((a / 100) >= 1.. 2021. 4. 9.
[백준] 12904번 문제풀이 문제 : www.acmicpc.net/problem/12904 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net 알고리즘 : 1. T의 마지막이 A이면 A를 삭제 2. T의 마지막이 B이면 B를 삭제 후 뒤집기 3. T와 L의 Length가 일치하거나, T의 Length가 더 작아지면 종료 S를 가지고 T를 만들어 나가지 말고, T를 가지고 조건을 통해 삭제를 해나가다가, S의 크기와 같거나, 작아지면 서로 일치한 지 확인하면 된다. 기존에는, S와 T가 서로 일치한지 T가 .. 2021. 4. 9.
[백준] 1715번 문제풀이 문제 : www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 알고리즘 : 1. 입력을 받은 뒤 priority heap(우선순위 힙) 에 push함. 2. pop을 하면 최솟값이 나옴. pop을 2번 하고, 이걸 더한걸 Sum에 더함. 3. pop 2번한걸 push함. 4. 이 과정을 반복함 (n-1번) #define _CRT_SECURE_NO_WARNINGS #include #define MAX_SIZE 100001 int heap[MAX_SIZ.. 2021. 4. 9.
[알고리즘] Counting Sort 구현 Counting Sort는 O(n)의 시간을 가지고 있다. 매우 빠른 시간복잡도임을 알 수 있다. 대신 한정된 입력에서 나온다는 보장이 있어야 한다. 5, 2, 1, 3, 4, 2, 1, 3, 2, 4, 5, 1, 2, 4, 5 이 배열을 Sorting 하면 1, 1, 1, 2, 2, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5 이렇게 된다. 그럼 구현은 굉장히 단순하게 할 수 있다. 그냥 1,2,3,4,5 각각의 개수를 세서 배열에 저장한 후 출력하면 된다. 근데 만약 1, 100 같은 경우에는 어떻게 될까? 1을 출력한 뒤, 100을 출력하려면 2~99까지의 의미없는 반복을 진행하여야 한다. 이런 문제점을 없앤게 바로 아래의 코드이다. 각각의 좌표를 지정한 후에, 좌표에 숫자를 꽂아넣는 방식이.. 2021. 4. 8.
[알고리즘] 삽입정렬(Insertion Sort) 알고리즘 보호되어 있는 글 입니다. 2021. 4. 8.