

이번 문제는 처음에 입력받은 값만큼 배열을 생성해, 해당 순서에 맞는 분수를 찾으려는 방식으로 접근했다. 하지만 시간 제한을 확인한 후 이 방법은 정답이 아니라는 확신과 함께 그만두게 되었다.
이후 지그재그 방향으로 이동하며 분수를 찾는 방법을 고민했지만, 규칙을 쉽게 파악하지 못해 결국 해설을 참고하게 되었다.
이 문제는 줄(i) 찾고, 줄 안에서 위치(N)로 분수 계산하는 것이다.
규칙
1번째 줄: 1개 → 1/1
2번째 줄: 2개 → 1/2, 2/1
3번째 줄: 3개 → 3/1, 2/2, 1/3
4번째 줄: 4개 → 1/4, 2/3, 3/2, 4/1
n번째 줄에는 n개 있음
- 홀수 줄 → ↙ 방향 ( 홀수번째 대각선에서 아래로 증가 )
- 짝수 줄 → ↗ 방향 ( 짝수번째 대각선에서 위로 증가 )
공식
홀수 줄
분모 = N
짝수 줄
분모 = i + 1 - N
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp3
{
internal class math1
{
static void Main(string[] args)
{
//백준 1193 분수찾기
int N = int.Parse(Console.ReadLine());
int i = 1; // 현재 대각선(줄)의 번호
while (N > i)
{
N -= i; // 해당 줄의 개수만큼 빼면서 N이 속한 줄을 찾음
i++; // 다음 줄로 이동
}
// i번째 줄에 도달했고, N은 그 줄에서의 위치가 됨
// 각 줄에서 분자 + 분모 = i + 1
if (i % 2 == 1) // 홀수 줄 (↙ 방향)
Console.WriteLine((i + 1 - N) + "/" + N); // 분자 감소, 분모 증가
else // 짝수 줄 (↗ 방향)
Console.WriteLine(N + "/" + (i + 1 - N)); // 분자 증가, 분모 감소
}
}
}



이번 문제는 규칙을 찾는 것이 핵심이었지만, 처음에는 그 규칙을 쉽게 파악하지 못했다.
특히 지그재그로 이동하는 분수의 구조를 이해하는 과정에서 어려움을 느꼈고, 결국 해설을 참고하게 되었다. 해설을 보고 나서도 한 번에 완전히 이해되지는 않았지만, 문제를 여러 번 다시 보면서 점차 규칙을 파악하는 연습이 필요하다고 느꼈다.
아직은 이런 유형의 문제에 익숙하지 않지만, 비슷한 문제를 반복해서 풀다 보면 자연스럽게 익숙해질 것이라고 생각한다.
참고
[BOJ/백준] 1193번 분수찾기 C++ 문제 풀이
단계별로 풀어보기 - 수학 1 단계 - [4단계] 1193번 문제 문제 링크 : www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 입력 복사 : 14 풀이 위 그림은 각
codesyun.tistory.com
'코딩 테스트 > 백준' 카테고리의 다른 글
| 백준 - [단계별로 풀어보기 약수, 배수와 소수 1] 2501 약수 구하기 (0) | 2026.03.26 |
|---|---|
| 백준 - [단계별로 풀어보기 약수, 배수와 소수 1] 5086 배수와 약수 (0) | 2026.03.26 |
| 백준 - [단계별로 풀어보기 수학1] 2869 달팽이는 올라가고 싶다 (0) | 2026.03.24 |
| 백준 - [단계별로 풀어보기 수학1] 2292 벌집 (0) | 2026.03.23 |
| 백준 - [단계별로 풀어보기 수학1] 2903 중앙 이동 알고리즘 (0) | 2026.03.23 |