갑자기 비쥬얼 스튜디오가 안돼서 .. 내 정답률을 낮춰벌임;;
**실수 부분에서 중요한 것
a,b,c=1을 해서 한번에 1을 넣어주는줄로 착각하고 있었다.
하지만 그렇게 하면 저렇게 c를 제외한 a랑 b가 오류가 난다.
a=1,b=1로 오류를 수정하고 했더니 정답이 되었다.!
#include <stdio.h>
int main() {
int E=0, S=0, M = 0;
scanf("%d %d %d", &E, &S, &M);
int year = 0;
int a=1, b=1, c = 1;
while (1)
{
year++;
if (E == a && S == b && M == c)
{
printf("%d", year);
break;
}
a++;
if (a % 16 == 0)
a = 1;
b++;
if (b % 29 == 0)
b = 1;
c++;
if (c % 20 == 0)
c = 1;
}
return 0;
}
아.. 코드 블럭이란 기능이 있는지 처음알았다.. ㅎㅎ
<코드 해석>
먼저 E, S, M을 int형으로 선언해줍니다.
그다음 scanf 정수만 받을 거니 %d로 받아줍니다.
year이 저희가 print해야할 값 !
0부터 시작해줘야합니다.
후위증가연산자를 통해 한바퀴 돌때마다 증가시킵니다.
그리고 a가 E를 b가 S를 c가 M을 대변해준다고 생각하면 돼요.
해를 거듭할수록 year도 올라가지만 a와 b,c의 각 값도 올라갑니다.
그래서 규칙에 맞게 a는 16의 배수일때, b는 29의 배수 일때, c는 20의 배수일때 1을 대입해줍니다.
a=15+1 =>1 이라고 생각하시면 돼요.
이런식으로 while 반복문으로 계속해서 반복하다가 입력받은 ESM과 abc의 각 값이 같아지면 year의 값을 출력하고 break를 통해 끝나게 되는 것입니다.
[백준 - 브3] 2441번 별 찍기 C언어 (0) | 2022.09.03 |
---|---|
[백준 - 브5] 1330 두 수 비교하기 C언어 (0) | 2022.09.03 |
백준 10869 사칙연산 (0) | 2022.07.05 |
백준 8393 합 (0) | 2022.07.05 |
백준 2163 초콜릿자르기 (0) | 2022.07.04 |
댓글 영역