해결된 질문
작성
·
422
0
선생님의 강의를 듣기 전에 직접 문제를 풀어보았는데 해설 강의를 듣고나서 고민이 생겨 질문드립니다.
우선 제가 풀이한 방식은 다음과 같습니다.
int main(){
//freopen("input.txt", "rt", stdin);
int n, i, j, end, sum = 0, cnt=0;
scanf("%d", &n);
if (n%2 == 0) end = n/2;
else end = (n/2)+1;
for (i = end; i >= 1; i--) {
sum += i;
if (sum == n) {
printf("%d ", i);
for (j = i+1; j <= end; j++)
printf("+ %d ", j);
printf("= %d\n", n);
sum -= end;
end--;
cnt++;
}
else if (sum > n) {
sum -= end;
end--;
}
}
printf("%d", cnt);
return 0;
}
입력받은 숫자 N부터 1씩 감소시키면서 sum에 누적하고 그 값이 처음의 N값과 동일하면 수식을 출력하는 방식으로 코드를 작성했습니다. 제공해주신 채점기를 돌려본 결과도 100점이 나왔구요.
그런데 강의를 들어보니, 저라면 몇 시간을 주어도 몰랐을 풀이법으로 문제를 해결하시더라구요. 강의 앞에서 말씀하셨다시피 지원자의 직감도 중요하게 보는 것 같은데 혹시 문제를 해결함에 있어서 이런 직감적인 부분을 얻으려면 어떻게 해야하는건가요? 문제를 풀면서 이런 방식을 발견할 때마다 외워야만 가능한 건가요? 아니면 문제를 풀다보면 자연스럽게 배워지는 부분인건가요?
답변 1
3
너무 걱정 안하셔도 될 코드구현력을 가지고 계십니다.
인터뷰에서 물어보는 것은 많이 제한되어 있습니다. 이런 강의를 통해서 하나 배우고 운 좋으면 그게 걸려드는 것입니다. 꾸준히 공부하시면 됩니다. 꾸준함에 장사없습니다.
그리고 평상시 수학관련 서적을 읽으시면 좋습니다.
재미있게 읽을 수 있는 책을 추천해드리자면 :
1. 이 문제 풀 수 있겠어? (알렉스 벨로스 지음, 북라이프출판)
2. 재미있는 영재들의 수학퍼즐 1권, 2권(박부성 지음, 자음과 모음 출판)
3. 특목고 자사고 가는 수학 3권(통계와 게임이론), 4권(확률과 함수): 살림출판
1번 책을 꼭 읽어보시고 고민 많이 해보세요.