# 알고리즘 문제풀이&연습

안녕하세요 허언증입니다. Heap Sort 힙은 최솟값이나 최댓값을 빠르게 찾아내기 위해 완전 이진 트리를 기반으로 하는 트리입니다. 힙에는 최대 힙과 최소 힙이 존재 최대 힙은 '부모 노드'가 '자식 노드'보다 큰 경우 일 때. 일단 힙 정렬을 하기 위해서는 정해진 데이터를 힙 구조를 가지도록 만들어야 합니다. 6 => 부모 노드(root) 2,3 => 자식노드 부모노드의 값(6)이 자식노드(2,3) 보다 클 경우 그림 처럼 최 상단에 제일 큰 값이 있는 경우 2 => 부모 노드(root) 1,4 => 자식노드 현재의 경우에는 부모노드에 2가 있고 자식노드에 1,4가 있지만 4는 2보다 값이 더 크기 때문에 서로 교체를 해줘야 힙 형태가 된다. 이를 "힙 정렬"이라고 한다 이진트리가 힙정렬이 완료가 되..
안녕하세요. 허언증 입니다. 저같은 경우 C++로 풀었습니다. python, Java로 안 풀었어요!! 문제 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net ■ 문제 조건 ■ 시간 제한 : 시간 복잡도 - 시간 3초 메모리 제한 : 공간 복잡도 – 메모리 8MB 정답 비율 : 22% 메모리 ,시간 제한 둘다 고려를 해야 해서 어려운 문제인거 같다. 메모리 오버 에러 당연히 / 시간 오버 에러 당연히 경험했다. 두 가지의 경우를 다 겪고 결국 해결 했다. 다른 분들도 이 글을 보고 참고가 되었으면 합니다!!! 1. 메모리 오버 >..
안녕하세요. 허언증 입니다. 저같은 경우 C++로 풀었습니다. python, Java로 안 풀었어요!! 문제 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 백준(Baekjoon)__11650_좌표 정렬하기 실패코드 #include #include using namespace std; int main(void) { int N; cin >> N; int input[10001][2] = { 0 }; for (int i = 0; i ..
안녕하세요. 허언증 입니다. 저같은 경우 C++로 풀었습니다. python, Java로 안 풀었어요!! 문제 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다. www.acmicpc.net 백준(Baekjoon)_10828_Stack #include #include #include using namespace std; int main() { int N; cin >> N; stack s; string command; for (int i = 0; i > comma..
안녕하세요. 허언증 입니다. 저같은 경우 C++로 풀었습니다. python, Java로 안 풀었어요!! 문제 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 백준(Baekjoon)_11720_숫자의 합 #include using namespace std; int main(){ int a; int sum = 0; cin >> a; char array[a]; for(int i =0 ; i > array[i] ; } for(int i =0 ; i < a ; i++){ sum += array[i] - '0'; } cout
안녕하세요. 허언증 입니다. 저같은 경우 C++로 풀었습니다. python, Java로 안 풀었어요!! 문제 11654번: 아스키 코드 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. www.acmicpc.net 백준(Baekjoon)_11654_아스키코드 #include using namespace std; int main(){ char a; cin >> a; cout
안녕하세요. 허언증 입니다. 저같은 경우 C++로 풀었습니다. python, Java로 안 풀었어요!! 문제 5585번: 거스름돈 문제 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오. 예를 들어 입력된 예1의 경우에는 아래 그림에서 처럼 4개를 출력해야 한다. 입력 입력은 한줄로 이루어져있고, 타로가 지불할 www.acmicpc.net 백준(Baekjoon)_5585_거스름돈 #include using namespace std;..
안녕하세요. 허언증 입니다. 저같은 경우 C++로 풀었습니다. python, Java로 안 풀었어요!! 문제 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 백준(Baekjoon)_11047_동전 0 #include using namespace std; const int num_MAX = 10; int main() { int kind_of, money; int array[11]; int mok, count = 0, namu = 0; cin >> k..
이론과 실습 사이
'# 알고리즘 문제풀이&연습' 카테고리의 글 목록