[BOJ/백준/C++] 4779번 칸토어 집합
·
Coding Test/Baekjoon
4779번: 칸토어 집합 칸토어 집합은 0과 1사이의 실수로 이루어진 집합으로, 구간 [0, 1]에서 시작해서 각 구간을 3등분하여 가운데 구간을 반복적으로 제외하는 방식으로 만든다. 전체 집합이 유한이라고 가정하고, www.acmicpc.net 📌 접근 방법 '-'를 3ⁿ 개 나열한 후 3등분하여 가운데를 공백으로 해야 함! 재귀호출을 이용해서 3등분 중 첫 번째, 세 번째만 출력되고 두 번째는 " "(공백)이 출력되게 구현 ✔ 칸토어 집합 0과 1 사이의 실수로 이루어진 집합 구간 [0, 1]에서 시작해서 각 구간을 3등분하여 가운데 구간을 반복적으로 제외하는 방식으로 만드는 집합 ✅ Pass Code #include #include #include #include #include #include #..
[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..