7단계 - 1193번
1193번: 분수찾기
첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.
www.acmicpc.net
문제점
1. 홀수와 짝수를 나누는 기준을 대각선 한 줄의 합이 같다는 것에서 착안하여 hap이라는 변수로 설정
-> 숫자가 너무 정신없어서 풀이가 힘들어지므로, 직관적으로 line이라는 변수로 1부터 시작
2.
//////////////////////////////////////////
https://abcdefgh123123.tistory.com/186
해당 풀이 참조 -> 추후 복습 및 추가 공부 필요
//////////////////////////////////////////
최초풀이
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>
int main(void)
{
/* [x]
숫자 합 2[1] 1/1
숫자 합 3[2,3] 1/2, 2/1
숫자 합 4[4,5,6] 3/1, 2/2, 1/3
숫자 합 5[7,8,9,10] 1/4, 2/3, 3/2, 4/1
숫자 합 6[11,12,13,14,15] 5/1, 4/2, 3/3, 2/4, 1/5
1 12 321 1234
1 21 123 4321
*/
int hap = 3;
int start = 2;
int front, rear;
int x;
scanf("%d", &x);
if (x == 1)
{
printf("1/1");
return 0;
}
while (1)
{
if (start <= x && x <= start + hap -2)
{
if(hap %2==0)
{
}
else if(hap %2 ==1)
{
}
}
start = start + (hap - 2);
}
//printf("%d/%d", , );
return 0;
}
최종풀이
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>
int main(void)
{
int x;
scanf("%d", &x);
int line = 1;
while (1)
{
if ((line - 1) * (line) / 2 < x && x <= (line) * (line + 1) / 2)
{
break;
}
line++;
}
if (line % 2 != 0)
{
int a = line * (line + 1) / 2;
printf("%d/%d", a - x + 1, line - (a - x));
}
else
{
int a = line * (line + 1) / 2;
printf("%d/%d", line - (a - x), a - x + 1);
}
return 0;
}
'백준(C언어) > 22년 7월' 카테고리의 다른 글
7월 30일(토) - 7단계(2292번 *실패->성공) (0) | 2022.07.30 |
---|---|
7월 29일(금) - 7단계(2292번 *실패) (0) | 2022.07.29 |
7월 28일(목) - 7단계(1712번) (0) | 2022.07.29 |
7월 28일(목) - 5단계(1065번) (0) | 2022.07.29 |
7월 27일(수) - 5단계(4673번) (0) | 2022.07.27 |
댓글