문자열 처리
174
김영우
작성한 질문수 3
0
#include <stdio.h>
#include <algorithm>
#include <vector>
using namespace std;
int main(){
int n, sum=0, cnt=0;
int startPoint=1, endPoint=0;
vector< vector<int> > results;
scanf("%d",&n);
//연산부
while(startPoint<(n/2)+1){
for(int i=startPoint; i<n; i++){
sum = sum + i;
endPoint = i;
if(sum>n){
sum=0;
startPoint++;
break;
}
if(sum==n){
vector<int>result;
//시작지점부터 끝지점까지 자연수 추가
for(int q=startPoint; q<=endPoint; q++){
if(q==endPoint) {
result.push_back(endPoint);
result.push_back(n);
}
else {
result.push_back(q);
}
}
results.push_back(result);
sum=0;
startPoint++;
cnt++;
break;
}
}
}
//출력부
for(int i=results.size()-1; i>=0; i--){
for(int q=0; q<results[i].size(); q++){
printf("%d",results[i][q]);
if(q==results[i].size()-1){
break;
} else if(q==results[i].size()-2){
printf(" = ");
} else {
printf(" + ");
}
}
printf("\n");
}
printf("%d",cnt);
return 0;
}
답변 1
0
문제와는 좀 다른 질문이긴 한데요.. 저 코드 작성하다 보니 개인적으로 출력부 부분을 문자열로 처리했으면 훨씬 간편했을거 같았습니다. 근데 문자열로 처리하려다보니 포인터를 많이 사용하더라구요. 그래서 든 생각이 C로 코딩테스트를 준비한다하면 포인터를 잘 사용할줄은 알아야 할까요?
테스트 케이스 질문
0
388
1
병합정렬 시간복잡도 질문
0
475
1
41.연속된 자연수의 합 문제풀이에서 수학적인 원리를 모르고 있습니다.
0
1365
2
질문드립니다.
0
389
1
질문드립니다!
0
437
1
dev 프로그램 질문
0
276
1
문제가 이해가 안되요
0
379
1
4번 나이차이 문제 접근법 질문 드립니다.
0
308
1
source file not compiled
0
1065
3
59번 질문드립니다.
0
374
1
25번 문제 질문
0
350
1
4. 나이차이 문제 질문입니다.
0
376
1
90번 라이언 킹 심바 1번 테스트 케이스
0
472
1
71번 문제 전역 변수 질문 있습니다
0
366
1
75번, 79번 priority_queue관련
1
360
1
75.최대 수입 스케줄
0
403
2
복면산 정답의 수
0
437
1
테스트 케이스에 대해서
0
450
1
수업 내용 질문입니다!
1
236
1
풀어보면 좋은 문제 목록 - 2580 스토쿠 DFS 질문입니다!!
0
838
2
12. 플로이드-와샬(그래프 최단거리) . 27:25초
0
257
1
다른 풀이 방식
0
318
1
크루스칼 vs 프림
0
313
1
숫자 총개수 small 질문있습니다.
0
246
1





