-
Codeforces Round #464 (Div. 2) - A - Love Triangle코드포스(CodeForce) 2018. 8. 17. 17:44반응형
1. 문제
2. 알고리즘
키워드 - 구현
* 문제 이해
문제 그대로 풀면 된다.
A = B, B = C, C = A 의 값의 가리 키도록 하면 된다.
각각의 원소는 인덱스를 뜻하고 인덱스의 값이 된다.
* 문제 풀면서 삽질 했던 점
처음 인덱스(1) 기준으로 A = B, B = C, C = A 를 찾았던 것이 가장 큰 문제였다.
처음 INDEX 가 정답이 아닌 경우에는 INDEX 를 증가하면서 찾았어야 했는데 주화입마에 빠져서 다른 생각을 하지 못했다.
코드 포스의 1번 문제는 대부분 큰 알고리즘을 요구하지 않는다. 문제만 이해하면 대부분 풀수 있는 문제가 대부분이다.
A 라는 생각에 갖혀서 다른 생각을 하지 못 하게 되서 2시간을 소비 했다. tekken 붕권 고수님에게 물어보고 싶었지만 뼈저리게 느껴야지만 성장 할 수 있고 스스로
해결하지 않으면 자꾸 의지하게 되서 안했다. 아무튼 그렇다.
스스로 문제를 분석하고 축소 해야하는데 너무 어렵게 생각했던거 같다. 간단하게 생각하기를 연습 해야 겠다
3. 코드
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#include <iostream>#include <vector>#include <algorithm>#include <functional>#include <string>using namespace std;int main() {int n; cin >> n;vector<int> arr(n + 1);arr[0] = 0;for (int i = 1; i<n + 1; i++) {cin >> arr[i];}int cand[4] = { 0, };bool sol = false;for (int i = 1; i < n + 1; i++) {/** @brief : 문제의 원흉* @description : cand[0] = arr[1] 항상 첫 번째 index 기준으로 값을 구해서 생긴 문제* tekken 님한테 배운것 중 하나 짜증나 욕을 써라! 아 아 놔 왜 내가 !!!!!!!!!!!!!!!!!!!!!!!!!!* 1로 놓고 계속 안 변한다고 생각을 했을까 !!!!!!!!!!!!!!!!!!!!*/cand[0] = arr[i];cand[1] = arr[cand[0]];cand[2] = arr[cand[1]];cand[3] = arr[cand[2]];bool first = cand[0] != cand[1];bool second = cand[1] != cand[2];bool third = cand[2] != cand[3];bool last = cand[0] == cand[3];sol = first && second && third && last;if (sol) {break;}}if (sol) {cout << "YES";}else {cout << "NO";}return 0;}cs 반응형'코드포스(CodeForce)' 카테고리의 다른 글