이 글에서는 제가 출제했던 문제인 가희와 읽기 쓰기 놀이를 왜 냈는지, 그리고 어떻게 풀어야 하는지 써 보도록 하겠습니다. 가희와 읽기 쓰기 놀이는, race condition을 주제로 만들어진 문제입니다. 그리고 N과 C가 9보다 작거나 같기 때문에, brute force를 돌려도 됨을 알 수 있어요. N과 C가 9보다 작거나 같다는 조건을 읽은 순간, 아. 그냥 백트래킹 돌려도 되겠구나. 이게 와야 해요. 출제 의도가 race condition이라고 했는데, 어째서 경쟁 상태일까요? 단순히 턴제 게임 아니였나요? 턴제 게임은 맞습니다. 맞는데, 다른 관점에서 봐 봅시다. 1번 사람이 1번, 2번 카드 순으로 내고, 2번 사람이 3번 카드를 낼 수 있다고 합시다. 그리고 1번은 a를 뒤에 추가, 2번은..
구현 검색 결과
코딩 테스트를 개최하고, 다른 분들의 코드를 검토하다 보면, 어느 포인트에서 헤매시는지 알 수 있습니다. 이 중에, 가희와 은행은 면접 대비하시면 한 번 정도는 들어보셨을 법한 라운드 로빈 스케줄링을 물어본 문제입니다. 자세한 건 링크 참고하세요. 이 문제에서 크게 어려워 할 만한 포인트는 없어 보였습니다. 저는 출제자였으니, 쉽게 생각했을 수도 있습니다. 그리고 이 정도는 os 수업 들으셨다면 과제로도 나올 법한 문제라 익숙했을 거라 생각했습니다. 그런데, 문제를 푸시는 분들 중 몇 분이 빠지셨던 함정이 있었습니다. 그 분들이 어떤 발상으로 접근을 하셨고, 어떤 부분 때문에, 잘못된 답을 도출했는지 복기해 보도록 하겠습니다. 그리고, 의도한 풀이를 설명하도록 하겠습니다. n명의 사람들은 0초일 때 오고..
안녕하세요. 조가희입니다. 최근에 가희와 함께하는 코딩 테스트 1회와 2회를 개최하였습니다. 이 중에서, 제일 잘 했다고 생각하는 것 중 하나는 1회에서 나온 상대 속도의 개념을 2회에 똑같이 연계했다는 점이였습니다. 그리고 21773번을 출제자인 제가 왜 물리 카데고리로 분류했는지 이유도 같이 설명해 보겠습니다. 상대 속도는, 관찰자가 보았을 때 물체의 속도를 의미해요. 예를 하나 들어보겠습니다. 저는 동쪽으로 1초에 1m씩 가고 있습니다. 차는 1초에 20m씩 서쪽으로 오고 있습니다. 하나씩 구해 볼게요. 제가 보았을 때, 차는 어떻게 오는 것처럼 보일까요? 먼저 이 때, 제 동쪽으로 21m 떨어진 거리에 차가 있었습니다. 1초 후에는 어떻게 될까요? 차는 저랑 같은 위치에 있습니다. 제가 보면, 차..
string padding 처리는 많이 들어보셨을 겁니다. 예를 들어 제가 낸 문제 중에 수인 분당선 문제도 답이 9:0:0인 경우에 09:00:00으로 출력하라고 했었습니다. 앞에 0을 padding을 해서 2자리로 맞추도록 한 것입니다. 그리고 오늘 새로 추가된 이 문제 역시 padding이 들어가 있습니다. 이 두 문제의 공통점은 left padding이였다는 점입니다. 제가 개최한 2회 코테의 1번 문제 또한, string을 long long으로 떨궈내면 여유롭게 해결을 하실 수 있는데요. 문자열을 long long으로 압축하는 방식을 2번 문제의 제 솔루션과 동일하게 하면 당연하게도 틀렸습니다를 보게 됩니다. 왜일까요? 해당 솔루션에 있는 압축 방식을 잘 읽어보면 문자열의 길이가 커질수록 숫자가..
시각 처리는 코딩 테스트에서 꽤 자주 나오는 주제 중 하나입니다. 특히 datetime을 처리하는 것은 나올 수 있는 중요 패턴인데요. 대충 YYYY-MM-DD hh:mm:ss 패턴이 주어지던지, 아니면 YYYY-MM-DD hh:mm:ss.xxx 이렇게 시각이 주어지고 선후 관계를 처리해야 하는 경우가 있고, 해당 시각으로부터 x분만큼 지난 경우를 계산해야 하는 경우가 있어요. 여기서 중요한 것은, 문제 상황을 빠르게 파악하는 것입니다. 시각을 기준 시각으로부터 경과된 초를 구해야 하는 것인지, 단순히 선후 관계를 파악하면 되는 것인지를 파악하는 것이 먼저입니다. 왜냐하면, 전자는 계산을 해야 하고, 후자는 그렇지 않아도 되기 때문입니다. 이게 무슨 소리인지, 2주 전에 열렸던 모의 코딩테스트에 나온 문..
최근댓글