일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 그리디
- BOJ
- C++
- 알고리즘
- WebMvcTest
- withmockuser
- web
- 백준
- DP
- Andrew Ng
- PS
- 코딩
- 쉬운딥러닝
- 신경망기초
- 딥러닝
- FNN
- 정렬
- SpringBoot
- python3
- responsebody
- 로지스틱회귀
- RequestBody
- 에라토스테네스의체
- 책리뷰
- Backend
- 스택
- Spring
- testing
- REST API
- Spring Data JPA
Archives
- Today
- Total
꾸준히하자아자
[백준]1292번 쉽게 푸는 문제 c/c++ 본문
728x90
728x90
문제
https://www.acmicpc.net/problem/1292
"하지만 동호는 현재 더 어려운 문제를 푸느라 바쁘기에 우리가 동호를 도와주자" 이거 킹받네...
나의 해결방법
1, 2, 2, 3, 3, 3, 4, 4, 4, 4...
수열을 배열에 저장하여
a번째 원소부터 b번째 원소까지 더한 합을 출력해주는 방식을 사용하였다.
- 이러한 형태의 수열을 저장하는 방법을 다뤄본적이 없어서 생소했다.
- 2중 for문을 사용하여 하나는 원소역할을 하고, 나머지 하나는 그 원소를 반복하여 몇번 출력할 것인지를 나타낸다.
코드
#include<iostream>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
int n[1000];
int cnt = 0;
for (int i = 1; cnt<1000 ;i++) {
for (int j = 0; j < i; j++) {
n[cnt++] = i; //cnt는 for문과 상관없이 이 줄이 끝나면 1씩 증가
if (cnt == 1000) //n배열을 다 채우면 break;
break;
}
}
int sum = 0;
for (int i = a-1; i <= b-1; i++) { //a번째는 n[a-1]값이고, b번째는 n[b-1]값 이므로
sum += n[i];
}
cout << sum << endl;
return 0;
}
피드백
배열에 저장하고 출력하기만 하면 되는 문제였다.
728x90
728x90
'개발 > 백준 & 프로그래머스' 카테고리의 다른 글
[백준]10828번 스택 c/c++ (0) | 2022.06.26 |
---|---|
[백준]10808번 알파벳 개수 c/c++ (0) | 2022.06.25 |
[백준]2693번 N번째 큰 수 c/c++ (0) | 2022.06.25 |
[백준]2609번 최대공약수와 최소공배수 c/c++ (0) | 2022.06.25 |
[백준]1789번 수들의 합 c/c++ (0) | 2022.06.25 |