본문 바로가기

전체 글

(168)
백준 11049 행렬 곱셈 순서 https://www.acmicpc.net/problem/11049 11049번: 행렬 곱셈 순서 첫째 줄에 입력으로 주어진 행렬을 곱하는데 필요한 곱셈 연산의 최솟값을 출력한다. 정답은 231-1 보다 작거나 같은 자연수이다. 또한, 최악의 순서로 연산해도 연산 횟수가 231-1보다 작거나 같� www.acmicpc.net 1차 시도는 브루트 포스였다. 매 번 가능한 모든 곱셈 결과 중 가장 작은 것을 합쳤다. 그럴싸하지만 이게 전체의 최적값을 보장하는 지 증명하지 못했고 --> 틀렸습니다 를 받았다. ㅠㅠ 2차 시도도 비슷했다. 원소 중에 가장 큰 값을 골라서 그 주변의 행렬을 곱했다. 이것역시 전체의 최적 값을 보장하지 않는다. --> 틀렸습니다 를 받았다. 결국 답은 Recursive + Memo..
백준 16235 나무 재테크 https://www.acmicpc.net/problem/16235 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 www.acmicpc.net 단순 구현이다. 삼성은 이런 문제가 많더라 /* 나무 재테크 */ #include #include #include #define BOARD 10 + 1 using namespace std; void input(); void solve(); int N, M, K; int dr[8] = { -1, -1, -1, 0, 1, 1, 1, 0 }; int dc[8] = { -1,0,1,1,1..
passport js의 session은 어떻게 동작할까? Passport.js는 Node JS의 인증모듈이다. 몹시 편리하다!! 뭐... 구글링을 통해 어떻게든 사용은 하고 있는데... 그 동작원리가 궁금했다. 모든 요청은 app을 타고 들어온다. 예를 들어서 위에서부터 차례대로 helmet, cookie_parser, bodyParser... 를 동작한 다음 passport initialize가 실행된다. 공식 문서에 따르면 Express-Based Application에서 passport를 쓰려면 초기화를 해줘야한다. 뭐 암튼, 지금은 로그인을 한 적이 없으니 클라이언트의 세션에 아무 정보도 기록되어있지 않다. 그런데 로그인을 성공적으로 하게되면 인증이 완료되고 serializerUser 함수가 실행된다. serializeUser 함수를 통과하면서 클라이언..