[BOJ/백준/C++] 24060번 알고리즘 수업 - 병합 정렬 1
·
Coding Test/Baekjoon
24060번: 알고리즘 수업 - 병합 정렬 1 첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 500,000), 저장 횟수 K(1 ≤ K ≤ 108)가 주어진다. 다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109) www.acmicpc.net 📌 접근 방법 합병정렬을 이용하여 풀었다. ✔ 합병정렬(Merge Sort) 배열이 2 개의 배열로 분할되고 크기가 1/2로 감소하는 분할 정복 알고리즘 크기가 n인 배열을 n/2 크기의 2개의 배열로 분할하는 것을 반복 더이상 분할할 수 없을 때 오름차순으로 다시 정렬하며 합병하는 것 ! 성능 : nlogn ✅ Pass Code #include #include #include #include #include #in..
[BOJ/백준/C++] 5430번 AC
·
Coding Test/Baekjoon
5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 📌 접근 방법 deque를 하나 만든다 문자열로 입력받은 배열을 숫자로 빼내어 덱에 넣음 reverse의 기본값은 false이고 R이 입력되면 reverse=true로 바꾸어준다. D가 입력됐을 때 덱이 비어있으면 error출력하고 끝. reverse=false면 원래대로 앞의 원소를 제거하고 reverse=true면 뒤집힌 상태이기 때문에 뒤의 원소를 제거한다. 배열형태로 덱의 값을 출력한다 ✅ Pass Code #include #include #include #include #include #include #inc..
[BOJ/백준/C++] 1021번 회전하는 큐
·
Coding Test/Baekjoon
1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 📌 접근 방법 연산 방법 1. 첫 번째 원소를 삭제한다. 2. 첫 번째 원소를 맨 뒤에 이동시킨다. 3. 맨 뒤에 있던 원소를 맨 앞으로 이동시킨다. ➡ 이 세가지 연산을 이용하여 n 개의 원소 중 입력된 m 개의 원소를 삭제하는 최소 연산 횟수를 구하는 문제 ➡ 연산 횟수에는 두 번째, 세 번째 연산만 포함됨 맨 끝과 가까운지, 맨 앞과 가까운지 체크해서 가까운 쪽과 관련된 연산을 진행하며 문제를 풀었다. ✅ Pass Code #include #includ..
[BOJ/백준/C++] 1966번 프린터 큐
·
Coding Test/Baekjoon
1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 📌 접근 방법 q를 이용하여 몇번째로 출력했는지 궁금한 출력물은 1, 아닌 출력물들은 0으로 구분해서 우선순위와 함께 넣어둔다. 벡터에도 따로 우선순위를 넣어둔다 우선순위대로 출력하게 하고, 카운팅한다 우선순위가 가장 큰 순서대로 출력하고 아니라면 맨 뒤로 넘긴다 몇번째로 출력했는지 궁금한 출력물이 출력될 때 반복문을 탈출해서 해당 카운트를 출력한다. ✅ Pass Code #include #include #include #include #include #includ..