본문 바로가기

분류 전체보기

(72)
Google SWE Intern 생존기 (1) Intro 이제 막 구글에 입사한지 2주를 채워갑니다. 첫 회사생활이라 정말 걱정 많이 했는데 시작을 이런 좋은 회사에서 할 수 있어서 매우 행운이라고 생 각합니다. 궁금해하시는 분들이 있을까봐 자세히 적지는 못하더라도 간단하게 이것저것 적어보려고 합니다. Team & Work 구글에 많은 팀들이 있는데, 구글 코리아에도 그 중 일부가 있습니다. 구글 검색을 담당하는 서치 팀, 그리고 머신러닝에 주로 사용되는 프레임워크인 텐서플로우 팀 중에서 하나를 골라야 했는데 작년에 서치 팀에서 인턴 하셨던 대학 선배님이 강력하게 추천해주셔서 서치 팀으로 팀 매칭하게 되었습니다. 업무는... 하드코어합니다. 일단 알고리즘만 하다 보니 개발에 대해서 완전 문외한이고, 심지어 그나마 조금 했던 개발도 백엔드였습니다. 그..
Google SWE Intern 지원부터 오퍼까지 Intro 이번 여름방학에, 6월 말부터 9월 중순까지 구글 코리아에서 SWE 인턴으로 근무하게 되었습니다. 첫 회사 생활이라 무섭기도 하고, 반면에 매우 기대되기도 하네요. 입사까지 약 두달 반정도 남았는데, 그동안 구글 기대하느라 학점을 망칠 것 같아서 조금 불안하기도 합니다만;; 어쨌던 간에 인터넷을 찾아보니 타 직군에 대한 인턴 후기는 꽤 많았는데 SWE 인턴 지원 후기는 거의 없어서 이것저것 짧게 적어봅니다. Main 작년에 아는 대학교 선배 분이 구글 인턴 한번 지원해보지 않겠냐고, 레퍼럴을 써주실 수 있는 분을 안다고 해서 이번 여름에는 되던 안되던 구글 인턴을 한 번 넣어봐야지 생각하고 있었습니다. 사실 그렇게 생각하고 있다가도 그냥 까먹고 있었는데, 선배님이 remind를 해 주셔서 시기..
Random Problem Solving 2 10650 Marathon 다음과 같은 두 배열을 관리하자. $\text{next}[i]$ : $i$번째 좌표에서 $i+1$번째 좌표로 이동하는 거리 $\text{save}[i]$ : $i$번째 좌표를 달리기 중 생략하기로 결정했을 때 절약하는 거리 그러면 쿼리 $Q$는 다음과 같이 해결할 수 있다. $s$에서 $e$까지 이동해야 하면, $\displaystyle \sum_{i=s}^{e-1} \text{next}[i] - \max_{s + 1 \le i \le e - 1} \text{save}[i] $ 가 답이 된다. 따라서 $\text{next}$는 부분 합 세그먼트 트리, $\text{save}$는 부분 최대 세그먼트 트리를 이용해서 관리해주면 $O(\log N)$에 찾을 수 있다. 쿼리 $U$는 ..
[BOJ] 20093 Coins 문제 설명 $8 \times 8$ 크기의 체스보드가 있습니다. $A$와 $B$가 이 위에서 게임을 합니다. 각 체스보드에는 동전이 하나씩 올려져 있고, 처음 상태는 무작위입니다. $A$는 동전을 최대 한 개 뒤집어서, $0$ 이상 $63$ 이하의 정수 하나를 체스보드만 보고 $B$가 알 수 있게끔 해야 합니다. $A$와 $B$의 전략을 직접 구현해 제출하는 투 스텝 문제입니다. 문제 관찰 서브태스크 1 동전을 하나 뒤집을 수 있다는 건, 원하는 위치의 동전을 위 또는 아래로 정확히 맞출 수 있다는 것과 동치입니다. 따라서 0번 위치의 동전을 잘 뒤집어 주면 됩니다. 서브태스크 4 서브태스크 1과 비슷한 느낌으로 접근합시다. $A$가 $B$에게 전달해야 하는 정보는 정확히 6비트어치입니다. 따라서 6개의 ..
[BOJ] 19677 Holy cow, Vim! (Hard) 문제 설명 생략한다. 문제 접근 이 문제를 풀기 위해서는 굉장히 많은 시행착오를 거쳐야 한다. 아래는 그 시행착오를 줄이기 위한 접근들을 단계별로 서술해놓았다. 그러나 이를 보지 않고 많은 시행착오를 겪는 것이 거의 모든 측면에서 도움이 될 것으로 보인다. 일단 lexicographical하게 정렬했을 때 명령어의 순서는 '*', '+', '-', '/', 'dup', 'input', 'jump', 'pop', 'print', 'push' 순서이다. 문제는 이 중 사칙연산과 dup은 우선순위도 빠르면서 스택에 필수적으로 하나 이상의 원소를 요구하기에, 두 명령어 ..
Newbie Cryptography Cheatsheet (작업 중) $$ \newcommand{\Mod}[1]{\ (\mathrm{mod}\ #1)} $$ Intro CTF 도중에 꺼내서 보고 싶은 내용들이 적혀있는 치트시트가 있었으면 좋겠다고 생각했는데, 크립토를 접었음에도 쓰면서 공부하면 괜찮을 것 같아서 매우 바쁜 와중에도 짬짬히 적고 있다. 내 생각엔 그냥 rkm0959 블로그를 열심히 베끼고 있는 것 같다 ㅋㅋ(본인이시라면 뒤로 가기를 눌러 주세요). 이 내용을 실제 공부용이나 CTF용으로 사용하는 것을 강력히 추천하지 않는다. RSA Introduction 크기가 비슷한 큰 소수 $p, q$가 있을 때, $N=pq$라 하자. 이때 공개된 $e$에 대해 $ed \equiv 1 \Mod{\phi(N)}$인 $d$가 존재하도록 하면 오일러 정리에 의거하여 $C \e..
UTCTF - Writeups I participated in UTCTF as a team Hyp3rFlow and achieved 18th place. Usually, I felt like I was always get along with hard-working team members, but this time - I think I solved enough, so I'm going to post a write-up of problems that I solved. Please understand that grammar can be awkward because it's my first time writing in English. 이번 UTCTF에 팀 Hyp3rFlow로 참가해서 18등을 했습니다. 일반적으로는 팀원들이 잘 해 주어서 좀..
지옥에서 돌아온 참깨라면 레시피 1. 물 500ml 정량보다 조금 더(약 50ml) 맞춘다(짠 걸 싫어하면 50ml를 더 추가한다). 분말스프 전부와 소고기 다시다 한 티스푼 가득 넣고 끓인다. 다시다를 안 넣어도 맛에 큰 차이가 없긴 하다만 넣는게 더 낫다. 넣지 않는다면 물 500ml 정량을 넣는다. 2. 물이 완전히 끓으면 면을 넣고 정확히 2분 10초 끓인다. (꼬들한 걸 좋아하면 10초정도 덜 끓인다.) 3. 면을 그릇에 덜고, 불을 끈다. 그리고 계란 하나와 계란 블럭을 넣는다(계란 블럭은 면 끓을 때 미리 넣어도 무방하다). 다시 불을 켜고 2분 10초 끓인다. 이때 계란은 풀면 안 되고, 계란 블럭은 푼다. 반숙이 좋거나 싫으면 그만큼 시간을 조절한다. (반숙 기준 2분 10초, 완숙 기준 2분 50초 넘게 끓여야 한다...