41번 질문있습니다!
287
qhdmswns
작성한 질문수 3
0
강사님 강의 잘 듣고있습니다.
다름이 아니라 제가 생각해낸것은 1부터 n 까지의 합 공식을 이용해서 연속된 숫자들의 합을 계산해둔 것인데,
예를들어 4+5+6이면
1부터 6까지의 합공식 -> 6*7/2 = 21 에서
1부터 3까지의 합공식 -> 3*4 /2 = 6을 빼면 되는것 같아서
밑에처럼 짜봤습니다.
#include<iostream>
using namespace std;
int main() {
int n; cin >> n;
int ans = 0;
int k;
for (int i = n-1; i >=1; i--) {// i를 역순으로 하면 개수가 작은놈부터 출력 i를 정순으로 하면 개수가 많은놈부터 출력
for (int j = 1; j < n - 1; j++) {
if (i*(i + 1) - j * (j - 1) == 2 * n) {
for (k = j; k < i; k++) {
cout << k << "+";
}
cout << i << " = " << n << endl;
}
}
}
return 0;
}
근데 아무리 봐도 효율이 좋은것같지는 않네요.. 교수님 코드처럼 생각해내는게 중요한데 아직 거기까진 못간것같습니다..
면접때 이런 질문이 나왔다고 하셨는데 제가쓴 방식대로 해도 괜찮은건가요? 처음 딱 봤을때 교수님 풀이를 생각해낼것 같지는 않아서 질문드립니다..
이렇게 짜도 결과는 같게 나오는것 같습니다!
답변 1
테스트 케이스 질문
0
373
1
병합정렬 시간복잡도 질문
0
462
1
41.연속된 자연수의 합 문제풀이에서 수학적인 원리를 모르고 있습니다.
0
1344
2
질문드립니다.
0
376
1
질문드립니다!
0
430
1
dev 프로그램 질문
0
275
1
문제가 이해가 안되요
0
376
1
4번 나이차이 문제 접근법 질문 드립니다.
0
307
1
source file not compiled
0
1045
3
59번 질문드립니다.
0
372
1
25번 문제 질문
0
349
1
4. 나이차이 문제 질문입니다.
0
372
1
90번 라이언 킹 심바 1번 테스트 케이스
0
470
1
71번 문제 전역 변수 질문 있습니다
0
365
1
75번, 79번 priority_queue관련
1
355
1
75.최대 수입 스케줄
0
400
2
복면산 정답의 수
0
431
1
테스트 케이스에 대해서
0
445
1
수업 내용 질문입니다!
1
232
1
풀어보면 좋은 문제 목록 - 2580 스토쿠 DFS 질문입니다!!
0
822
2
12. 플로이드-와샬(그래프 최단거리) . 27:25초
0
254
1
다른 풀이 방식
0
317
1
크루스칼 vs 프림
0
306
1
숫자 총개수 small 질문있습니다.
0
242
1





