오늘은 뭘 풀까 둘러보다가 제목이 '쉽게 푸는 문제'인 걸 발견했다. 근데 실패로 떠있는거다. 언제 틀린거지?
확인해보니 2년 전에 틀렸다. 문제를 다시 읽고 코드를 살펴보니, 전에 문제를 제대로 이해하지 못했었다.
입력이 3 7 이면 출력은 15가 나와야한다.
그러니까, 수열의 모양이 1 2 2 3 3 3 4 4 4 4 .... 이런 식으로 n, (n+1)이 (n+1)개, (n+2)가 (n+2)개... 의 형태이다.
즉 수열의 3번째~7번째를 모두 더하면 2+3+3+3+4 = 15가 나오는 것이다.
근데 당시의 나는 3과 7 사이의 값인 4+5+6 = 15 라고 생각했던 것. (심지어 아까도 그렇게 착각했음)
<코드>
#include <stdio.h>
#define start 1
int main() {
int a, b;
int c = 1;
int n = 0;
int sum = 0;
scanf_s("%d %d", &a, &b);
for (int i = start + 1; i < 1002; i++) {
for (int j = start; j < i; j++) {
// printf("%d ", c);
n++;
if (n >= a && n <= b) {
sum += c;
if (n == b)
break;
}
else if (n == a && n == b) {
sum += c;
break;
}
else{}
}
c++;
if (n == a - 1 && a == b) // a와 b가 같은 상황에서, 자꾸 1 전에 break로 루프를 빠져나가서 조건 명시.
continue;
if (n == b) // 위에서 break 되는 조건을 만족시킬 경우 for문 전체 종료.
break;
}
printf("%d", sum);
return 0;
}
그냥.. 문제를 이해만 한다면 풀 수 있는 문제였다.
시간이 좀 걸리긴 했다. 머리가 좀 안 돌아가서 말이다
출력 나오는 거 보면서 범위랑 조건을 수정해줬다. 이런 문제에도 이 정도의 시간을 쓰는 거 보면 코테는 진짜..ㅋㅋ 망할듯.
'TIL > 백준' 카테고리의 다른 글
4740 : 거울, 오! 거울 - 문자열끼리 비교하기(strcmp) (0) | 2024.11.17 |
---|---|
백준_4375 : 1 - 모듈러 산술 (1) | 2024.09.06 |
16173 : 점프왕 쩰리 - 재귀함수 (0) | 2024.08.27 |
1225 : 이상한 곱셈 - char->int로 형변환 하기 (0) | 2024.08.25 |
18406 : 럭키 스트레이트 - 숫자 반반 나눠서 각각의 합 비교하기 (0) | 2024.08.24 |