[백준]1193. 분수찾기
2023. 7. 2. 15:13ㆍ코딩테스트/백준
[문제]
https://www.acmicpc.net/problem/1193
1193번: 분수찾기
첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.
www.acmicpc.net
[풀이]
1. sum을 통해 1,2,3 ... n까지 더해가며 sum이 n보다 크거나 같으면 break로 반목문을 빠져나감
2. 이때의 sum은 i(같은 줄에서 가장 큰 수)가 포함되었으므로 sum에서 i를 빼고 1을 더해서 구해야 하는 n이 있는 줄에서 가장 첫번째의 순서를 구한다.
3. i에 1씩 더해가며 n번째가 i로부터 얼마나 떨어져있는지(count)를 구한다.
4. 지그제그 모양이므로 i가 짝수인 경우는 가로축부터, 홀수인 경우는 세로축부터 시작하는 걸 고려해 print한다.
[코드]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
long long i = 0, n, sum = 0, count = 0;
scanf("%llu", &n);
for (i = 1; i <= n; i++)
{
sum += i;
if (sum >= n)
break;
}
sum = sum - i + 1;
while (n > sum) {
count++;
sum++;
}
if (i % 2 == 0) {
printf("%lld/%lld", count + 1, i - count);
}
else {
printf("%lld/%lld", i - count, count + 1);
}
return 0;
}
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 15894. 수학은 체육과목 입니다 (0) | 2023.07.08 |
---|---|
[백준]2869. 달팽이는 올라가고 싶다 (0) | 2023.07.03 |
[백준] 1316. 그룹 단어 체커 (0) | 2023.05.16 |
[백준] 2941. 크로아티아 알파벳 (0) | 2023.05.16 |
[백준] 1157. 단어공부 - 시간초과 (0) | 2023.05.16 |