본문 바로가기

분류 전체보기24

[실3] 2108. 통계학 [출처] : https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 구현을 빡세게 해야되는 문제였다. 좀 까다로웠던 부분은 최빈값 부분이였는데, 우선 로직은 이렇다. 0을 입력받으면 A[0]++ 400을 입력받으면 A[400]++ 이런식으로 그 배열의 인덱스를 이용하여 그 값이 몇번 입력되는지 카운트를 하는 생각을 했다. 그런데 문제에서는 입력값의 범위가 -4000 ~ 4000인데, 배열의 인덱스는 0부터시작하는데 어떻게 해야하지..? 싶었다. 해결방법은 생각보다 .. 2022. 9. 10.
[실2] 2805. 나무 자르기 [출처] https://www.acmicpc.net/problem/2805 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 이분탐색을 이용한 문제였다. 나무를 자를 때 최대 높이부터 차근차근 잘라보는 완전탐색을 첨에 생각했는데, 시간초과가 났다. 그래서 시작을 0 끝을 나무최대크기 로 두고 중간부터 잘라보고 만족하면 시작을 mid + 1로 올리고 만족하지않으면 끝을 mid - 1로 낮추면서 이분탐색으로 값을 찾았다. #include #include #include #define endl '\n' using namespace std.. 2022. 9. 9.
[실2] 1874. 스택 수열 [출처] https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net #include #include #include #define endl '\n' using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); vector v; stack s; int count = 1; int n; cin >> n; for (.. 2022. 9. 6.
[실5] 11866. 요세푸스 문제 0 [출처] https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net #include #include #define endl '\n' using namespace std; int main(void) { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N, K; cin >> N >> K; int count = 0; queue Q; for (int i = 1; i < N+1; i++) { Q.push(i); } cout 2022. 9. 2.