본문 바로가기

728x90
반응형

Algorithm/C++

(111)
[C++] 5972 : 택배 배송 https://www.acmicpc.net/problem/5972 5972번: 택배 배송 농부 현서는 농부 찬홍이에게 택배를 배달해줘야 합니다. 그리고 지금, 갈 준비를 하고 있습니다. 평화롭게 가려면 가는 길에 만나는 모든 소들에게 맛있는 여물을 줘야 합니다. 물론 현서는 www.acmicpc.net #include using namespace std; int n, m; vector v[51234]; // ex. v[4][3]값이 {2,3}이면, 4번 길은 2번길과 소 3마리로 이어져 있다는 뜻. int d[51234]; void fun(int vertex) { priority_queue pq; // {정점,거리} pq.push({vertex, 0}); d[vertex] = 0; while (!pq.e..
[C++] 14719 : 빗물 https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net #include using namespace std; int h, w; vector v; int ans; int main(void) { cin >> h >> w; int input; for (int i = 0; i > input; v.push_back(input); } int left; int right; int height; for (int i =..
[C++] 2493 : 탑 https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net #include using namespace std; int n; stack s; map ans; int main() { cin >> n; int height; s.push({112345678, 0}); for (int i = 0; i > height; while (!s.empty() && s.top().first 1) { int towerIdx = s.top()...
[C++] 16234 : 인구 이동 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net #include using namespace std; typedef pair pi; int n, l, r; int a[55][55]; int isTeam[55][55]; vector team; int dx[] = {0, 0, 1, -1}; int dy[] = {1, -1, 0, 0}; int ans; void findGroup(int ax, int ay) { if (isTeam[ax..
[C++] 7490 : 0 만들기 https://www.acmicpc.net/problem/7490 7490번: 0 만들기 각 테스트 케이스에 대해 ASCII 순서에 따라 결과가 0이 되는 모든 수식을 출력한다. 각 테스트 케이스의 결과는 한 줄을 띄워 구분한다. www.acmicpc.net #include using namespace std; int t, n; bool isZero(string s) { vector digit; vector op; string p = ""; for (int i = 0; i < s.size(); i++) { if (!isdigit(s[i])) { if (s[i] == ' ') { continue; } op.push_back(s[i]); digit.push_back(stoi(p)); p = ""; } els..
[C++] 1027 : 고층 건물 https://www.acmicpc.net/problem/1027 1027번: 고층 건물 세준시에는 고층 빌딩이 많다. 세준시의 서민 김지민은 가장 많은 고층 빌딩이 보이는 고층 빌딩을 찾으려고 한다. 빌딩은 총 N개가 있는데, 빌딩은 선분으로 나타낸다. i번째 빌딩 (1부터 시작) www.acmicpc.net #include #define EPSILON 0.000001 using namespace std; int n; vector v; int d[55]; int ans; int main() { int input; cin >> n; for (int i = 0; i > input; v.push_back({i, input}); d[i] = n - 1; } for (int i =..
[C++] 20437 : 문자열 게임 2 https://www.acmicpc.net/problem/20437 20437번: 문자열 게임 2 첫 번째 문자열에서 3번에서 구한 문자열은 aqua, 4번에서 구한 문자열은 raquator이다. 두 번째 문자열에서는 어떤 문자가 5개 포함된 문자열을 찾을 수 없으므로 -1을 출력한다. www.acmicpc.net #include using namespace std; class StringGame { public: int number; vector idx; int min_value; int max_value; }; int t, k; string w; int main() { cin >> t; for (int i = 0; i > w >> k; map info; for (char..
[C++] 8979 : 올림픽 https://www.acmicpc.net/problem/8979 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 www.acmicpc.net #include using namespace std; class Medal { public: int c; int g; int s; int b; bool isJointRanking(const Medal& other) { if (g == other.g && s == other.s && b == other.b) { return true; } return false; } bool o..

728x90
반응형