목록문제풀이 (155)
말랑한 하루
※ 소스코드는 각 문제 설명 하단에 를 통해 확인하실 수 있습니다. [sliver4, 1018 체스판 다시칠하기] - 브루트포스핵심은 체스판을 칠하는 것이다. 8x8 정사각형을 자르는 기준인 좌측 상단 꼭짓점을 기준으로 했을 때, 기준의 색을 변경하지 않고 체스판을 다시 칠하는 것과 기준의 색을 변경하고 체스판을 다시 칠하는 것을 고려하여 모든 경우의 수를 판단해주어야 한다. 기준과 다름을 판단하는 원리는, 체스판의 규칙성에 존재한다. 체스판은 모든 색상이 대각선으로 일치하며, 상하좌우로 나와는 다른 색을 지닌 칸이 존재한다. 이 규칙들을 활용한다. 보드의 (y,x)를 기준으로 (y-1,x), (y,x-1), (y+1,x), (y,x+1)은 다른 색이 존재하므로 (y+x) mod 2의 결과값은 (..
※ 소스코드는 각 문제 설명 하단에 를 통해 확인하실 수 있습니다. [sliver 2, 16953 A→B] - 너비우선탐색(BFS) 10^9자리에서 10^10자리까지 확인할 수 있기 때문에, long long 자료형을 활용해야 하는 것이 핵심이다. 보통 string stl을 사용하면서 숫자를 변환하기 위해 stoi를 많이 활용하는데, 이 함수는 무언가의 약자임을 기억하자. 약자임을 기억한다면, stoi가 string to int임을 생각할 수 있고 다양한 방면으로 연계하여 string을 long long으로 바꾸자 할 때, stoll 함수를 활용할 수 있음을 깨달을 수 있다. 더보기 #include #include #include #pragma warning(disable:4996) using names..