• (백준 알고리즘 문제풀이) 1520번 내리막 길

    문제 문제 링크 문제 접근 문제를 보고 디피로 어떻게 접근할까 하다가 그냥 나는 이 문제를 priority queue를 활용한 bfs로 접근하는 게 좋겠다고 판단했다. 아래와 같은 경우에 대해서는 뒤로 돌아가는 경우가 발생하는데 이를 해결하기 위해서는 해당 위치까지의 경우의 수를 모두 구한 후에 이를 다음으로 전달하는 것이 맞다고 생각했다. 내리막길이 될 수...


  • 2020 카카오 블라인드 신입 공채 1차 코딩 테스트 후기 및 문제 풀이

    카카오 블라인드 신입 공채 코딩 테스트 방학 기간을 백준에 갈아넣은 뒤 처음 본 코딩 테스트이다. 물론 공채를 위한 대회이지만 2020년 졸업 예정자가 아니어도 참여 가능하다고 하기에 바로 지원해서 도전해보게 되었다. 2020 블라인드 코딩 테스트 후기 2019 문제들을 어제 풀어봤는데 대부분이 구현에 초점이 맞춰져있고 뒤에 난이도가 있는 문제들은 알고리즘을 이용해서 푸는...


  • (백준 알고리즘 문제풀이) 11051번 이항 계수2

    문제 문제 링크 문제 접근 나눗셈에 대한 모듈러 연산은 (a/b)%k != (a%k)/(b%k)으로 이항계수에 모듈러를 적용하기 쉽지 않다. 유클리드 호제법, 페르마의 소정리 등을 보다가 결국 파스칼 삼각형을 알게 되었다. 다음 이항 계수 문제 접근 링크를 보고 이항계수를 dp를 이용해서 구하는 방법을 알 수 있었다. 코드 #include <cstdio> int n, k, c[1001][1001];...


  • (백준 알고리즘 문제풀이) 2468번 안전 영역

    문제 문제 링크 문제 접근 이 문제는 bfs를 이용하면 손쉽게 풀 수 있는 문제이다. 수심의 높이를 계속 높여가면서 그룹의 개수가 몇개인지를 찾아주며 가장 그룹개수가 큰 경우를 찾으면 된다. 코드 #include <cstdio> #include <queue> #include <vector> #define pii pair<int, int> using namespace std; int n, arr[101][101], sinked[101][101], visited[101][101], MAX; int d[4][2]...


  • (백준 알고리즘 문제풀이) 2133번 타일 채우기

    문제 문제 링크 문제 접근 이 문제는 처음에 그냥 2칸 길이로 만드는 경우와, 4칸 길이로 만드는 경우만 가지고 풀 수 있는 문제인 줄 았았다. 그래서 cnt[i] = cnt[i-1]*3 + cnt[i-2]*2로 구할 수 있을 줄 알았다. 하지만 찾아보니 2칸, 4칸 일때 말고 6칸 일 때 2경우가 추가 되고 8칸일 때도 2경우가...