백준 1060: 좋은 수
https://www.acmicpc.net/problem/1060 이 문제는 이해가 되지 않아서 몇번이고 다시 읽어서 겨우 이해했다. 책을 좀 더 읽어야할지도 모르겠다.요약하자면, 집합 S의 수들을 포함하지 않는 연속된 구간들이 있는데, 이 구간에 포함된 수의 갯수가 적은 순서대로 제시하란 이야기이다. 예시 2번을 예로들면, 구간을{1, 2, 3, 4}, {5}, {6, 7, 8, 9, 10}, {11}, {12, 13, 14, 15, 16, 17}, {18}, {19, ......}이렇게 나눌수 있다 이 때, 집합 S에 포함된 5, 11, 18은 가장 안 좋은 구간으로 먼저 제시되고,{1}, {1, 2}, {1, 2, 3}, {1, 2, 3, 4}로 4개인 가장 적은 구간 부분 집합을 갖고 가장 작은 ..
백준 5588: 별자리 찾기
https://www.acmicpc.net/problem/5588 약 10분 간 고민을 했고, 별자리 위치와 사진 속 별의 위치의 차이를 구한뒤에, unordered_map에 이 차이를 count하고, 이 count가 별자리 별 갯수와 동일하다면, 그것이 정답일것이다란 결론을 내렸다. 그렇게 구성한 코드는 #include #include using namespace std;int N, M, sx[1001], sy[1001], px[201], py[201];struct pairHash {public: size_t operator()(const pair& p) const { return hash()(p.first) & hash()(p.second); }};unordered_map, int, pairHash..
백준 2873: 롤러코스터
https://www.acmicpc.net/problem/2873 결론부터 말하면 이 문제는 구글링으로 답을 얻었다. 며칠동안 너무 생각을 하다, 끙끙 앓는 것 보단 답지를 보는 습관을 슬슬 고쳐야할 것 같다. 내가 퍼즐게임을 즐겨하다 보니 이런 습관이 든것 같은데, 코딩테스트는 퍼즐게임과 달리 시간이 기다리지 않으니까, 앞으로는 확실하게 시간 측정을 하고, 못 풀면 빨리 답을 찾아서, 요령을 습득하자. 처음엔 쉬울 것 같다는 생각과 함게 문제에 임했다. 왜냐하면 모든 칸을 둘러보면 끝이다. 오른쪽 끝으로 갔다가, 아래로 한 칸아래, 왼쪽 끝으로 가는 것을 반복하면 답이 나오겠거니 했다. 그런데, 막상 문제에 도전해보니, 이 방법은 조건이 필요했다는 것을 깨달았다. R이 짝수, C가 짝수 인 경우는 위의..
백준 23268: Deceptive Directions
https://www.acmicpc.net/problem/23268 이 문제의 초기 아이디어는 어렵지 않았다. BFS의 층수에 따라, 명령을 매칭해서, 해당 명령과 다른 곳으로 옮길 수 있을 때 옮긴다는 아이디어였다. 그렇게 나온 코드는 다음과 같다.#include #include #include using namespace std;int W, H, sy = 0, sx = 0;char M[1001][1001];bool v[1001][1001];string D;vector input;int dy[4] = { -1, 1, 0, 0 };int dx[4] = { 0, 0, -1, 1 };int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(..