본문 바로가기

728x90
반응형

Algorithm/C++

(111)
[C++] 1976 : 여행 가자 https://www.acmicpc.net/problem/1976 1976번: 여행 가자 동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인 www.acmicpc.net #include using namespace std; int N, M; int MAP[222][222]; vector v; int prt[222]; // parent int hit[222]; // hight int find_root(int x) { if (x == prt[x]) { return x; } return prt[x] = find_root(prt[x]); } void union_root(..
[C++] 9935 : 문자열 폭발 https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net // 시간 초과 코드 #include using namespace std; string s; string t; int main(void) { cin >> s >> t; int tlen = t.length(); while (true) { auto a = s.find(t); if (a == string::npos) { break; } s.erase(a, tlen); } if (s.len..
[C++] 4179 : 불! https://www.acmicpc.net/problem/4179 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문자 www.acmicpc.net #include using namespace std; int R, C; char MAP[1111][1111]; vector fireStart; // 불 시작 구간 pair start; // 지훈 시작 구간 bool Jflag[1111][1111]; // 지훈이 지나온 길 bool fireFlag[1111][1111]; // 불이 지나온 길 bool fireMove[2222]; //..
[C++] 1987 : 알파벳 https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 $R$칸, 가로 $C$칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 ($1$행 $1$열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 www.acmicpc.net #include using namespace std; int R, C; char MAP[23][23]; bool flag[23][23]; // 지나온 길 map al; // 지나온 알파벳 int dx[] = {1, -1, 0, 0}; int dy[] = {0, 0, 1, -1}; int ans; void fun(int r, int c, int cnt) { bool canGo = fal..
[C++] 1806 : 부분합 https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N > n >> s; int input; for (int i = 0; i > input; a.push_back(input); } int left =..
[C++] 11437 : LCA https://www.acmicpc.net/problem/11437 11437번: LCA 첫째 줄에 노드의 개수 N이 주어지고, 다음 N-1개 줄에는 트리 상에서 연결된 두 정점이 주어진다. 그 다음 줄에는 가장 가까운 공통 조상을 알고싶은 쌍의 개수 M이 주어지고, 다음 M개 줄에는 정 www.acmicpc.net #include using namespace std; int n, m; vector v[51234]; int dep[51234]; bool flag[51234]; int parentNode[51234]; int main(void) { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int node1, node2; cin >..
[C++] 1253 : 좋다 https://www.acmicpc.net/problem/1253 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net #include using namespace std; int n; vector v; int ans; int d[2222]; int main(void) { cin >> n; int input; for (int i = 0; i > input; v.push_back(input); } sort(v.begin(), v.end()); for (int i = 0; i < v.size(); i++) { for..
[C++] 4485 : 녹색 옷 입은 애가 젤다지? https://www.acmicpc.net/problem/4485 4485번: 녹색 옷 입은 애가 젤다지? 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주 www.acmicpc.net #include #define INF 123456789 using namespace std; int n; int problem; int MAP[130][130]; int d[130][130]; int dx[] = {0, 0, -1, 1}; int dy[] = {-1, 1, 0, 0}; void fun() { for (int i = 0; i < n; i++) { for (int j..

728x90
반응형