string padding 처리는 많이 들어보셨을 겁니다. 예를 들어 제가 낸 문제 중에 수인 분당선 문제도 답이 9:0:0인 경우에 09:00:00으로 출력하라고 했었습니다. 앞에 0을 padding을 해서 2자리로 맞추도록 한 것입니다. 그리고 오늘 새로 추가된 이 문제 역시 padding이 들어가 있습니다. 이 두 문제의 공통점은 left padding이였다는 점입니다. 제가 개최한 2회 코테의 1번 문제 또한, string을 long long으로 떨궈내면 여유롭게 해결을 하실 수 있는데요. 문자열을 long long으로 압축하는 방식을 2번 문제의 제 솔루션과 동일하게 하면 당연하게도 틀렸습니다를 보게 됩니다. 왜일까요? 해당 솔루션에 있는 압축 방식을 잘 읽어보면 문자열의 길이가 커질수록 숫자가..
구현 검색 결과
제가 세터였던 대회 문제들 중에서는 가희와 프로세스 시리즈가 있었습니다. 문제 제목을 보면 알 수 있듯, 해당 문제들은 cs 과목도 같이 복기하시면서, 코딩 테스트도 같이 준비하면 좋겠다고 생각해서 출제하게 되었습니다. 무엇을 물어보려고 저는 이 문제를 냈을까요? 눈치가 빠르신 분들은 아셨을 지도 모르겠지만, 영상에서 언급된 aging에 대해서 냈음을 알 수 있습니다. 여기서 조금 더 나가서, 상황을 일반화 시킬 수 있는지 묻기 위해서, 7번과 8번 문제도 같이 냈습니다. 기술 면접을 준비하시기 위해서 cs 과목들을 보셨다면, 우선순위 큐를 들어보셨을 겁니다. 문제에서 우선순위가 가장 높은 것을 선택한다는 것이 언급되었으니, 먼저 의심해 봐야 할 것은 우선 순위 큐를 써야 하나? 입니다. 혹은 정렬을 쓸..
제가 개최한 대회 중에, 2번 문제는 브루트 포스, 백 트래킹을 이용한 문제였습니다. 코딩 테스트에서 상당히 자주 보이고, 반드시 풀고 넘어가야 하는 유형이므로, 2번에 출제하였습니다. 보통, 백트래킹이라고 하면, dfs를 돌리면서 처리하는 경우가 일반적입니다. 이 문제도 예외는 아닙니다. 문제는 중복 방문하는 것을 어떻게 처리할 것인지였습니다. 예를 들어, (1, 1)에 고구마가 있는데, (1, 1)을 3번 방문했다면, (1, 1)에 있는 고구마를 한 번 먹은 것이지, 세 번 먹은 것이 아니기 때문입니다. 여기서 언급하는 문제는 실버1에서 골드5 정도로 그렇게 어렵지 않습니다. 그렇기에 더 자세히 분석해 보도록 하겠습니다. 가장 먼저 생각할 수 있는 방법은, 중복된 데이터를 제거하는 방법이 있습니다. ..
파이썬은 배열 회전은 zip을 이용하면 1줄에 끝내버릴 수 있습니다. 그 방법을 알아봅시다. 3번째 줄이 90도 회전하는 소스입니다. c++로 구현할 때, 줄수가 꽤 길었는데요. 파이썬은 의외입니다? zip과 asterisk, 그리고 list 컴프리헨션으로 간단하게 구현할 수 있어요. 이 과정을 하나 하나 짚어보겠습니다. 먼저, zip(*li) 부터 보겠습니다. 이것에 대한 문법적인 설명은 다음에 언급하도록 하겠습니다. zip을 쓸 때 짝꿍처럼 많이 쓰이니, 이디엄처럼 외워 봅시다. 문서를 보시면 li가 [1, 2, 3]일 때, f(*li)는 f(1, 2, 3)과 똑같습니다. 그러면, li가 [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]일 때, zip(*li)는 무엇..
시각 처리는 코딩 테스트에서 꽤 자주 나오는 주제 중 하나입니다. 특히 datetime을 처리하는 것은 나올 수 있는 중요 패턴인데요. 대충 YYYY-MM-DD hh:mm:ss 패턴이 주어지던지, 아니면 YYYY-MM-DD hh:mm:ss.xxx 이렇게 시각이 주어지고 선후 관계를 처리해야 하는 경우가 있고, 해당 시각으로부터 x분만큼 지난 경우를 계산해야 하는 경우가 있어요. 여기서 중요한 것은, 문제 상황을 빠르게 파악하는 것입니다. 시각을 기준 시각으로부터 경과된 초를 구해야 하는 것인지, 단순히 선후 관계를 파악하면 되는 것인지를 파악하는 것이 먼저입니다. 왜냐하면, 전자는 계산을 해야 하고, 후자는 그렇지 않아도 되기 때문입니다. 이게 무슨 소리인지, 2주 전에 열렸던 모의 코딩테스트에 나온 문..
최근댓글