https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 이 문제는 queue를 이용하여 해결할 수 있었다. queue에 N까지의 숫자를 1부터 삽입하여 queue의 front는 1 back은 N으로 한다. 이후 queue가 비어있지 않을 때 까지 반복을 수행한다. 이때 queue에서 K 만큼 앞에 있는 것을 뒤에 빼고 넣는 과정을 반복한다. 반복을 빠져 나오면 queue의 front에 있는 숫자를 출력하면 K 번째 숫자가 된다. #include #include using namespace std; int main(){ int N, K;..
https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 이 문제는 배열에 값을 삽입하고 정렬하면 해결할 수 있다. 이때 배열의 요소에 좌표를 삽입해야한다. 이를 위해 Point라는 class를 선언하여 배열의 요소로 사용하였다. x 좌표가 같으면 y 좌표를 기준으로 내림차순으로 정렬하고, x 좌표가 다르면 x 좌표를 기준으로 내림차순으로 정렬한다. #include #include #include u..
https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 이 문제는 위키 백과의 이항 계수 공식을 참고 하였다. 공식은 아래 링크와 같다. https://ko.wikipedia.org/wiki/%EC%9D%B4%ED%95%AD_%EA%B3%84%EC%88%98 이항 계수 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 이항 계수의 표를 파스칼의 삼각형이라고 한다. 조합론에서 이항 계수(二項係數, 영어: binomial coefficient)는 이항식을 이항 정리로 전개했을 때 각 항의 계수이며 ko.wiki..
https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 이 문제는 STL의 deque를 이용해서 큐를 만들면 해결할 수 있다. string 객체를 생성해 입력을 받아 if 문을 통해 명령이 무엇인지 판단한다. 그 후 명령에 따라 deque의 함수를 호출하면 된다. push_front와 push_back 명령의 경우 push_front와 push_back 함수를 사용한다. pop_front와 pop_back의 경우 비어있는지 알 수 있는..
https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 이 문제는 STL의 queue를 이용해서 큐를 만들면 해결할 수 있다. string 객체를 생성해 입력을 받아 if 문을 통해 명령이 무엇인지 판단한다. 그 후 명령에 따라 queue의 함수를 호출하면 된다. push 명령의 경우 push를 사용한다. pop의 경우 비어있는지 알 수 있는 empty를 사용하여 큐가 비어있는지 확인한 후 요소가 있다면 가장 먼저 삽입된 요소를 알 수..
https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 이 문제는 STL의 vector를 이용해서 스택을 만들면 해결할 수 있다. string 객체를 생성해 입력을 받아 if 문을 통해 명령이 무엇인지 판단한다. 그 후 명령에 따라 vector의 함수를 호출하면 된다. push 명령의 경우 push_back을 사용한다. pop의 경우 비어있는지 알 수 있는 empty를 사용하여 스택이 비어있는지 확인한 후 요소가 있다면 가장 최근에 ..
https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,0 www.acmicpc.net 이 문제는 맵을 사용해서 맵안에 key, value 쌍이 존재하는지 검사하면 된다. 맵의 key와 value를 정수형으로 선언한다 이때 key는 long으로 해야한다. 반복을 진행할 때 맵에 input에 해당하는 key, value 쌍이 존재하지 않는다면, input으로 key를 생성해 value를 1로 초기화한다. 만약 존재한다면 value를 증가시킨다. 이후..
https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 이 문제는 배열의 요소를 주어진 조건에 맞게 정렬해야한다. 배열의 요소는 나이와 이름을 넣고, 이름이 같을 때 들어온 순서대로 정렬하기 위해 규칙이라는 변수도 생성하였다. 위에서 정의한 요소는 class로 정의하여 배열에 삽입하였다. 정렬을 위한 함수는 bigger라는 이름으로 정의하였고, 나이가 같으면 규칙에 따라 내림차순으로 정렬하고, 나이가 다르면 나이 순서대로 내림차순으로 정렬하였다. #incl..