본문 바로가기

백준 일기2

[C++] 18111번 (마인크래프트) 기본적인 풀이방법을 떠올리는데에는 크게 오래 걸리지 않았다. 결과적으로 그 풀이방법에는 전혀 틀릴게 없었다. 근데 풀이법을 떠올린 시점부터 정답코드를 작성하기까지 3시간정도의 시간이 걸렸다. 왜 이렇게 오래 걸려는고 하니 첫번째 이유는 문제를 제대로 안 읽어서였다. 블록을 부수면 부순 개수만큼의 블록이 인벤토리에 들어오는 건데, 이 부분을 제대로 안 읽어서 모른채로 문제를 풀었다. 2시간 쯤 지나서 문제를 다시 읽다가 이 부분을 알게 됐다. 두번째 이유는 자잘자잘한 실수 때문이다. 첫번째 이유 외에도 코드 상의 실수가 몇가지 있었다. 그리고 첫번째 이유 + 그 외의 실수들을 수정하다가 지우면 안 될 코드를 지우기도 했다. 충분히 어렵지 않게 풀 수 있는 문제였는데 혼자서 야랄을 너무 많이 했다. 너무 슬.. 2023. 7. 2.
1308번 (D-Day) 오늘도 삽질을 했다. 오늘부터 D-Day까지 며칠 남았는지 구하는 문제였다. 처음에 떠올린 아이디어는 1. 오늘이 a년 D-Day가 b년이라면, a+1년부터 b-1년까지의 일수를 다 더한다. 2. 올해 남은 일수를 다 더한다. 3. D-Day가 그 해 1월1일부터 며칠 뒤인지를 구하고 더해준다. 그렇게 코드를 작성했다. 분명히 정답일거라 확신했다. 하지만 오답이었다. 왜일까? 윤년을 구하는 방식이 잘못됐을까? 백준문제 중에 윤년을 구하는 문제를 풀었던 기억이 떠올랐다. 그 문제로 가서 정답코드를 가져와서 넣어봤다. 틀렸다. 이 때쯤, 다른 아이디어가 떠올랐다. 오늘과 D-Day를 마치 수직선 위의 하나의 숫자로 보는 것이다. 오늘은 1년1월1일(원점)로부터 얼마나 지난 날이고, D-Day는 1년1월1일로.. 2023. 5. 3.