2번 문제 해설과 답안
04 1회차 모의 코딩테스트 해설
2번 문제 해설과 답안
* 이 문제의 해설을 보기 전에 색종이 문제를 먼저 공부하고 오시면 좋습니다! 비슷하지만 서로 풀이가 다를 수 밖에 없는 두 문제의 차이에 초점을 맞추고 공부하면 좋습니다.


중요 포인트


 문제를 읽고 솔루션을 설계하기 전에는 아래의 두 가지를 꼭 점검해야 합니다.

  • 문제에서 직/간접적으로 주어진 모든 정보를 정확히 이해하고 받아들였는지 확인했는가?
  • 나 스스로 문제에서 언급되지 않은 내용을 마음대로 추측/가정하고 있지는 않은지 확인했는가?


 그리고 솔루션을 실제로 구현하고 적용하기 전에 아래의 세 가지를 고려해야 합니다.

  • 내가 설계한 솔루션이 예제 데이터뿐만 아니라 항상 정답을 구해낼 수 있는 일반적인 방법인가?
  • 내가 설계한 알고리즘이 요구하는 시간 복잡도와 공간 복잡도가 문제의 시간/메모리 제한을 지킬 수 있는가?
  • 문제에서 주어진 제한 사항을 활용하고 불필요한 정보 획득을 버려가며 조금 더 경량화된 알고리즘을 설계할 수 있는가?


 물론 이런 과정은 이렇게 말로 설명한다고해서 바로 실전에 적용할 수 있는 것은 아닙니다. 수 많은 문제들을 풀어보며 쌓인 경험을 바탕으로 감각적으로 하게 되는 경우가 많습니다. 하지만 문제의 풀이를 고민하고 다른 사람의 해설을 볼 때에 위의 내용들에 초점을 맞추고 공부해보세요.


더 공부할 things


 이 문제처럼 계산 과정에서 제곱이나 곱하기가 들어가는 경우 항상 데이터의 범위를 확인합니다. 계산 과정에서 범위 초과가 날 수 있기 때문입니다. 각 변수들의 표현 범위를 대략적으로라도 알고 있는 것이 좋습니다.


답안 코드


 아래에 세 언어로 각기 다른 방법을 이용해 작성한 코드를 첨부합니다. 세 가지 언어와 방법을 보고 공부해보세요.


C++ 답안 코드

실행 언어: cpp


Java 답안 코드

실행 언어: java


Python3 답안 코드

실행 언어: py
질문하기
추가 자료
no files uploaded

추가 자료가 없습니다

여기서 새로운 학습 자료를 확인하세요!
선생님이 추가한 자료들을 바로 확인할 수 있어요.