본문 바로가기

728x90

전체 글

[C++]백준 11651번: 좌표 정렬하기 2 문제 https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 문제이해 첫째 줄에 N을 입력합니다. 두 번째 줄부터 N개의 좌표(x, y)를 입력합니다. 좌표를 기준에 맞게 정렬하여 출력합니다. 우선 좌표를 정렬하는 기준은 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순으로 되어있습니다. vector 에 x좌표와 y좌표를 저장하고 algorithm의 sort를 이용하여 정렬한 후 .. 더보기
[C++]백준 1644번: 소수의 연속합 문제 https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net 문제이해 첫째 줄에 자연수 N을 입력합니다. 연속된 소수의 합으로 N을 나타낼 수 있는 경우의 수를 출력합니다. 연속된 소수의 합으로 N을 나타낼 수 있는지 확인하기 위해서는 우선 2 ~ N 사이에 있는 소수를 찾아야 합니다. 에라토스테네스의 체를 사용하여 소수를 구한 다음 소수들을 연속으로 더해갑니다 만약 그 합이 N보다 작은 경우 계속 더해나가면 되고 N보다 작으면 앞에서 더했던 수를 빼기만 하면 됩니다. 만약 그 합이 N과 같으면 경우의 수를 +1 합니다. 다음은 해당 논리대로 구현된 코드입니다. 문제풀이.. 더보기
[C++]백준 2075번: N번째 큰 수 문제 https://www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 문제이해 첫째 줄에 N(1 ≤ N ≤ 1,500)을 입력한다. 다음 줄부터 N x N의 표가 주어진다. 출력으로 N번째 큰 수를 출력한다. 표의 특징은 모든 열들이 오름차순으로 정렬된채로 입력된다는 것이다. 열을 기준으로는 이미 크기순으로 정렬이 되어있기 때문에 vector로 구현하면 가능할 것 같아서 2차원 vector로 구현하였다. 각각의 열을 기준으로 입력을 받고 열들의 마지막 행의 값이 제일.. 더보기
[C++]백준 1655번: 가운데를 말해요 문제 https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 문제이해 첫째 줄에 정수의 개수(N)을 입력합니다. 다음 줄부터 N개의 수를 입력합니다. N번의 케이스 동안의 중간값을 N개의 줄을 통해 출력합니다. 문제 자체의 내용은 매우 간단하지만 시간 제한이 0.1초이기 때문에 무엇인가 색다른 방법이 필요합니다. 처음엔 priority_queue 한개에 자료를 넣고 중간 값을 찾아가 이를 vector에 저장하고 나중에 출력하는 방법을 .. 더보기
[C++]백준 1406번: 에디터 문제 https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 문제이해 첫째 줄에 편집하고자 하는 문장이 주어진다. 영어 소문자로만 이루어져 있으며 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수(N)가 주어진다. 셋째 줄부터 N개 만큼의 명령어가 주어진다. 명령어의 종류는 다음과 같다. L | 커서를 왼쪽으로 한 칸 옮긴다.(다만 커서가 문장 맨 앞일 경우 무시한다.) D | 커서를 오른쪽으로 한 칸 옮긴다.(다만 커서가 문장 맨.. 더보기
[C++]deque deque 생성 deque a; deque a 생성 deque a(n); 크기가 n인 deque a 생성 deque a(n, m); 크기가 n이고 값이 m으로 초기화된 deque a 생성 deque b; and deque a(b); deque b의 값을 가진 deque a 생성 deque 멤버 함수 a[idx]; vector처럼 idx로 원소 접근 가능 a.front(); 배열의 첫 번째 원소를 참조 a.back(); 배열의 마지막 원소를 참조 a.pop_front(); 배열의 첫 번째 원소를 제거 a.pop_back(); 배열의 마지막 원소를 제거 a.push_front(n); 배열의 앞에 원소 n 삽입 a.push_back(n); 배열의 뒤에 원소 n 삽입 a.size(); 배열의 크기를 리턴 a.c.. 더보기
[C++]백준 5430번: AC 문제 https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 문제이해 테스트 케이스의 개수가 입력으로 주어진다. 테스트 케이스만큼 수행할 함수와 배열에 들어있는 수의 개수, 배열이 입력된다. 함수가 수행된 결과를 출력한다. 만약 에러가 발생하는 경우에는 error를 출력한다. 명령어에는 R과 D가 있다. R은 전체 배열의 순서를 뒤바꾸는 것이고 D는 배열의 첫 번째 원소를 제거하는 것이다. 우선 R부터 봤을 때 전체 배열의 순서를 뒤바꾸는 함수인 reverse는 시간복잡도가 O(n)으로 R이 나올 때마다 r.. 더보기
[C++]백준 2258번: 정육점 문제 https://www.acmicpc.net/problem/2258 2258번: 정육점 첫째 줄에 두 정수 N(1 ≤ N ≤ 100,000), M(1 ≤ M ≤ 2,147,483,647)이 주어진다. N은 덩어리의 개수를 의미하고, M은 은혜가 필요한 고기의 양이다. 다음 N개의 줄에는 각 고기 덩어리의 무게와 가격을 나 www.acmicpc.net 문제반례 다음은 반례로 나오기 좋은 것들을 모아놓은 것이다. 더보기 10 14 2 3 2 4 2 5 3 1 1 3 7 9 7 3 8 4 10 3 3 10 답 : 4 3 2 1 1 1 1 2 3 답 : 2 10 10 2 3 2 4 2 5 3 1 1 3 7 9 7 3 8 4 10 3 3 10 답 : 3 4 9 1 2 2 4 3 6 4 8 답 : 8 7 15 .. 더보기

LIST