목록백준 (31)
이우의 개발일지

백준 1018번 체스판 다시 칠하기 문제 이 문제는 체스판 같은 N*N 판이나 일반적인 N*M의 표를 공략하는 문제가 있을 때 쓰면 좋을 것 같은 팁이 있다. 위의 표를 보면 B와 W가 번갈아 칠해져야하며, 위 아래 역시 번갈아 칠해져있어야 한다.빨간 색 부분의 숫자를 보면 결국에는 행과 열의 합이 일정하다. 이 말이 무슨 말이냐면 행과 열의 합이 (0,0)이 만약에 B라고 했을 때 행과 열의 합이 항상 짝수일 때는 B가 나온다. 반대로 (0,1)이 W라고 하면 행과 열의 합이 항상 홀수가 나온다. 즉, B와 W처럼 일정한 간격으로 입력해야할 때 행과 열의 합이 짝수인지 홀수 인지 맞춰서 해주면 된다. 체스판 다시칠하기 전체 코드#include using namespace std;char chass[..

백준 2252번 백준 2252번은 위상정렬을 이용해 문제를 풀 수 있습니다. 위상정렬이란?방향 그래프에서 간선으로 주어진 정점 간 선후관계를 위배하지 않도록 나열하는 정렬입니다. 이런식으로 처음으로 시작하는 정점을 먼저 큐에 놓어준 뒤, 그 정점을 pop 할 때 그 정점과 간선으로 연결된 정점의 indegree값을 빼주는 식으로 코드를 전개하면 됩니다. 백준 2252번 줄세우기 전체 코드#include #include #include using namespace std;int N[32001];vector result;vector check[32001];int main() { int n, m; cin >> n >> m; vector vec; queue que; for (int i = 0; i >..

백준 16953번 #include#includeusing namespace std;int main() { long long a, b; cin >> a >> b; queue> Q; int minn = 1000000; Q.push({ a,0 }); while (!Q.empty()) { long long n1 = Q.front().first; int n2 = Q.front().second; if (n1 == b) { minn = min(minn, n2 + 1); Q.pop(); continue; } if (n1 * 2