문제링크 : https://www.acmicpc.net/problem/7894 7894번: 큰 수 많은 어플리케이션은 매우 큰 수를 사용한다. 이러한 어플리케이션은 데이터를 안전하게 전송하고, 암호화하기 위해서 수를 키로 사용한다. 수가 주어지면, 그 수의 팩토리얼의 자리수를 구하 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int main() { int T; cin >> T; while(T--) { double m, result = 0; cin >> m; for(double i=1; i
문제링크 : https://www.acmicpc.net/problem/5569 5569번: 출근 경로 상근이가 사는 도시는 남북 방향으로 도로가 w개, 동서 방향으로 도로가 h개 있다. 남북 방향 도로는 서쪽부터 순서대로 번호가 1, 2, ..., w로 매겨져 있다. 또, 동서 방향 도로는 남쪽부터 순서대 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair #define MOD 100000 int dp[101][101][4]; //방향이 총 4가지 int main() { int W, H; cin >> W >> H; for(int i=1; i 위 } for(int i=1..
문제링크 : https://www.acmicpc.net/problem/16943 16943번: 숫자 재배치 두 정수 A와 B가 있을 때, A에 포함된 숫자의 순서를 섞어서 새로운 수 C를 만들려고 한다. 즉, C는 A의 순열 중 하나가 되어야 한다. 가능한 C 중에서 B보다 작으면서, 가장 큰 값을 구해보자. C는 0 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int A, B; string str_A; vectorv; int visited[10]; int max_V = 0, len = 0; void dfs(string s) { if(s.size() == str..
문제링크 : https://www.acmicpc.net/problem/8982 8982번: 수족관 1 입력의 첫 줄은 수족관의 경계에 있는 꼭짓점의 개수 N(1 ≤ N ≤ 5,000)이 주어진다. N은 짝수이다. 수족관의 경계는 항상 꼭짓점 (0, 0)부터 시작한다. 그리고 마지막 꼭짓점은 (A, 0)의 형태로 끝난 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair pii depth[400001]; //각 최대 깊이와 빠져나간 깊이 int main() { int N, M, result = 0; cin >> N; int x1, y1, x2, y2; cin >> x1 >..
문제링크 : https://www.acmicpc.net/problem/17615 17615번: 볼 모으기 첫 번째 줄에는 볼의 총 개수 N이 주어진다. (1 ≤ N ≤ 500,000) 다음 줄에는 볼의 색깔을 나타내는 문자 R(빨간색 볼) 또는 B(파란색 볼)가 공백 없이 주어진다. 문자열에는 R 또는 B 중 한 종류만 주 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int main() { int N,R_cnt=0,B_cnt=0; string s; cin>>N>>s; for(int i=0; i
문제링크 : https://www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int N, M, H, a, b; int result = MAX; int arr[31][11]; //H, N int max_cnt; bool check() //i번째 선이 i번째로 돌아오는가? { for (int i = 1;..
문제링크 : https://www.acmicpc.net/problem/18310 18310번: 안테나 첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수로 주어진다. www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int arr[200001]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int N; cin >> N; for(int i=0; i> arr[i]; } sort(arr, arr+N);..
문제링크 : https://www.acmicpc.net/problem/16194 16194번: 카드 구매하기 2 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int arr[1001]; int dp[1001]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int N; cin >> N; for(int i=1; i> arr[..
문제링크 : https://www.acmicpc.net/problem/2668 2668번: 숫자고르기 세로 두 줄, 가로로 N개의 칸으로 이루어진 표가 있다. 첫째 줄의 각 칸에는 정수 1, 2, …, N이 차례대로 들어 있고 둘째 줄의 각 칸에는 1이상 N이하인 정수가 들어 있다. 첫째 줄에서 숫자를 적절 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int arr[101]; int visited[101]; vectorresult; void dfs(int s, int e) { if(visited[s]) //방문했다면 { if(s == e) //돌아옴 { resu..
문제링크 : https://www.acmicpc.net/problem/12789 12789번: 도키도키 간식드리미 인하대학교 학생회에서는 중간, 기말고사 때마다 시험 공부에 지친 학우들을 위해 간식을 나눠주는 간식 드리미 행사를 실시한다. 승환이는 시험 기간이 될 때마다 간식을 받을 생각에 두근두 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int N; cin >> N; queue arr; for(int i=0; i> n; arr.push(n); } s..
문제링크 : https://www.acmicpc.net/problem/11497 11497번: 통나무 건너뛰기 남규는 통나무를 세워 놓고 건너뛰기를 좋아한다. 그래서 N개의 통나무를 원형으로 세워 놓고 뛰어놀려고 한다. 남규는 원형으로 인접한 옆 통나무로 건너뛰는데, 이때 각 인접한 통나무의 높이 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int T; cin >> T; int N; int arr[10001]; while(T--) { cin >> N; ..
문제링크 : https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair vectordirection; int dx[] = {1, 0, -1, 0}; //→, ↑, ←, ↓ int dy[] = {0, -1, 0, 1}; int x, y, d, g; int arr[101][..
문제링크 : https://www.acmicpc.net/problem/10158 10158번: 개미 가로 길이가 w이고 세로 길이가 h인 2차원 격자 공간이 있다. 이 격자는 아래 그림처럼 왼쪽 아래가 (0,0)이고 오른쪽 위가 (w,h)이다. 이 공간 안의 좌표 (p,q)에 개미 한 마리가 놓여있다. 개미는 오 www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int W, H, P, Q, T; cin >> W >> H >> P >> Q >> T; int N..
문제링크 : https://www.acmicpc.net/problem/17609 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net #include using namespace std; #define ll long long #define MAX 987654321 #define pii pair int T; string s; int func(int left, int right, int check) { while(left> T; while(T--) { cin >> s; cout
