맨날 supervised의 image to image translation만 했어서 진짜 image generation의 의미를 가지는 GAN을 모르고 있는 것 같아서 하나씩 공부해보고 있다. 랜덤 벡터 z로부터 이미지를 생성하고, style은 어떻게 입히는지를 전반적으로 공부했었다. 그중에 내가 미리 노션에 정리해놨었던 논문을 블로그에 포스팅한다!
[백준] 15486 퇴사 2
다시 dp 문제를 잡았다. 나 혼자 dp 문제를 해결할 수 있다는 사실이 참 신기한데, 이 문제에서는 혼자 풀었다가 시간초과가 났다. 따라서 내 풀이를 먼저 설명하고, 그 다음으로 실제 풀이는 어떻게 진행되는지 설명해보려고 한다.
[AI] Image-to-Image Translation with Conditional Adversarial Networks (pix2pix)
이번에는 엄청 유명한 pix2pix 논문을 리뷰해보겠다. GAN 중에서 paired image set을 이용할 때 가장 많이 쓰고 보편적인 베이스라인이다. 랜덤 vector z 대신 input image를 condition으로 활용하면서 paired image를 이용해 학습하는 형태로 바뀌었다.
[pwnable] Canary
해당 포스팅은 드림핵의 강의를 정리한 글이다. 링크
[pwnable] Return To Overwrite
해당 포스팅은 드림핵의 강의를 정리한 글이다. Return to Overwrite는 스택 버퍼 오버플로우를 이용해서 return 자리의 주소를 내가 원하는 주소로 바꾸는 것이다. 따라서 스택에서 어느 위치에 버퍼가 위치해 있고, 얼마만큼을 overwrite해야 하는지를 잘 따져 주어야 한다. 해당 이미지는 드림핵에 있는 그림을 가져온 것이다. 내가 함수 호출 규약을 설명한 글을 보면 제대로 알 수 있다.
[백준] 3273 두 수의 합
투포인터 문제는 예전에도 그랬지만 감이 안 잡힌다. :O 그래서 공부를 하고 문제를 풀려고 하는데두 예시 문제 설명이구 내가 막 와닿게 이해되지는 않는 거 같다 .
[system] 호출 규약
x86의 호출 규약
x86은 레지스터의 수가 적기 때문에 함수의 인자를 모두 레지스터에 올리기?가 좀 어렵다. 따라서 x86은 함수에 진입하기 전 스택에 함수의 인자들을 push하는 방법을 선택했다. 스택에 함수의 인자들을 올릴 때는 거꾸로 의 순서로 push한다. (마지막거가 제일 첫번째로 온다.) 그리고 caller가 사용한 stack을 정리한다.
[pwnable] shellcode
드림핵의 강의를 차근차근 수강해 보려고 시도하고 있다. 나는 요 로드맵 링크를 따라서 수강하고 있는데 여간 빡센 게 아니다… ㅎㅎ 여기서는 링크의 예제를 따라하고 설명해볼 것이다!
[백준] 13305 주유소
이 문제는 그리디 문제이고 나는 이 문제를 풀 수 있어서 너무 좋았다. 별로 어렵지 않은 문제라고 생각할 수도 있겠고 그리디 문제라는걸 알지 못했다면 풀지 못했을 수도 있지만 어쨌든 이 문제를 풀어서 기분이 너무 좋다!
[백준] 1541 잃어버린 괄호
그리디 문제는 쉬운 것 같으면서도 항상 쉽지가 않다. 오잉 이거 그냥 이렇게 푸는 거 아니야? 해서 쉽게 풀리는 문제가 있는가 하면 이 문제처럼 아무리 헤매고 헤매도 방법이 슉 안 떠올라서 고생하는 문제가 있다. 슥슥 안 풀렸던 문제이기 때문에, 기록을 남기려고 이렇게 블로그 포스팅을 한다!