제가 낸 3회 코딩테스트 문제 중에 가희와 쓰레기 놀이가 있었습니다. 이 문제의 input에 대한 output 파일을 생성하기 위해 작성한 파일이 이 코드였는데요. 생각보다 오래 걸렸답니다. 대략 13 ~ 14초 정도 걸렸던 걸로 기억해요. 이 로직을 그대로 validator에도 썼기 때문에, 벨리 데이터가 시간 초과가 나기도 했습니다. 제가 작성했던 처음 버전의 솔루션 코드를 유심히 보실 필요는 있습니다. 왜냐하면, 생각보다 비효율적인 일을 하고 있기 때문입니다. 이 부분을 먼저 보겠습니다. new_ref의 내용을 그대로 ref에, new_con의 내용을 그대로 con에 넣어버리는 부분입니다. bfs 함수가 끝나기 직전에 호출하는데요. 이 두 친구는 bfs 내의 지역 변수로 선언되어 있어요. 이 부분입..
전체 글 검색 결과
제가 개최한 코딩 테스트 3회에서 5번 문제였던 가희와 btd5 2는 난이도가 높았던 문제였습니다. 입력 크기와 사이즈를 보니, brute force 솔루션으로 검수진 코드와 제 코드를 교차 검증 가능했습니다. 오래 걸려 봤자 1시간 내외로 수행이 가능한 사이즈였기 때문입니다. 제가 검수했던 문제 중 하나인 시철이가 사랑한 수식 또한 비슷한 이유로 brute force 솔루션을 작성했던 적이 있었습니다. 제가 깃허브에 올린 솔루션은, 당연하게도 객체 지향 같은 건 무시한 코드였는데요. brute force 솔루션 또한 객체 지향적으로 구현하지 못했습니다. 이 문제의 출제 의도 중 하나가 객체 지향 설계 능력을 보는 것이였는데 출제자가 그걸 못 했다니. 앞으로 몇 개의 글에 걸쳐서 brute force 솔..
이번 시간에는 백준에서 문제를 푸실 때 많이 보이는 절대오차, 상대오차에 대해서 간단하게 짚고 넘어가도록 하겠습니다. 먼저 모범 답안과의 절대 오차가 x 이하이면 정답 처리한다는 말이 무슨 이야기일까요? 실제 정답이 a라고 하면 a-x를 출력해도 정답, a+x를 출력해도 정답이라는 의미입니다. 즉, 내가 출력한 답을 b라 하고, 실제 답을 a라 하면 abs(b-a)의 값이 x이면 정답이라는 의미입니다. 1008번 문제를 보도록 할게요. a/b를 출력하라고 하는데요. 절대 오차 또는 상대 오차가 10^(-9) 이하이면 정답이라고 해요. a = 4, b = 3을 입력받았어요. float로 받아서 float 형식으로 출력했어요. 1.3333333731이 출력되네요. 실제 답은 1.3333333333... 인데..
이번 3회 코테에서도 어김없이 3번 문제에는 cs가 나왔습니다. 그런데, 기존 3번 문제는 골드 5로 평가되었던데 비해, 3회 3번은 얘네들보다 난이도가 높았습니다. 가희와 쓰레기 놀이는 어떤 문제였는지, 출제 목적이 무엇이였는지부터 상세하게 설명을 하면서 풀이를 작성하도록 하겠습니다. 먼저, 이 문제를 가져오게 된 계기는 그리 어렵지는 않았습니다. 이 글에서도 간접적으로 볼 수 있긴 하지만, 결정적인 계기는 logback의 MDC를 보다가 threadLocal을 보게 되었고, 그 안에 있는 WeakReference를 보게 된 것이 결정타였습니다. gc가 약하게 도달 가능한 객체들을 모두 지워야 겠다는 판단을 했을 때, finalize가 된다고 되어 있는데 이것을 구현해 보라는 목적도 있었고요. 제한을 ..
제가 3회 코딩테스트에 출제한 문제 중에, 가희와 쓰레기 놀이가 있었습니다. 이 문제에 대한 풀이는 다음 편에 상세히 올리도록 하겠습니다. 대신에, 이번에는 어떤 것을 가지고 출제했는지에 대한 썰을 풀어보도록 하겠습니다. 이미, 제 포스팅 스타일을 보신 분들은 눈치 채셨을 지도 모르겠지만. 제 코딩테스트에서 3번 문제는 예외없이 cs가 나오기도 했고요. 일단 자바나 python이나, weak reference 비슷한 게 또 있음을 알 수 있어요. 강한 참조 관계가 아닌 얘들이 있는데요. 자바는 soft, weak, 팬텀이 있긴 한데요. 여기서 다룰 내용은 아닌 듯 합니다. 저는 여기서 의문이 하나 들었습니다. 아니. 굳이 왜? 그냥 객체 a로부터 b에 접근할 수 있다고 치면, 강한 연결 관계로만 대충 이..
최근댓글