[백준] 1193번 분수찾기 / C++
#문제
#풀이
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false); cin.tie(NULL);
int N;
int i = 1;
cin >> N;
while (N > i)
{
N -= i;
i++;
}
if (i % 2 == 1)
{
cout << i + 1 - N << '/' << N;
}
else
{
cout << N << '/' << i + 1 - N;
}
return 0;
}
#정리
i번째 대각선 내 원소의 수는 i개라는 조건에 착안하여 N이 i보다 크다면, N을 i만큼 빼주고 i를 증가시키는 방법으로 N의 위치를 알아낼 수 있었다. i를 구했다면 <i + 1 - N> 공식을 통해 대각선 위의 타겟 값을 구할 수 있는데, 대각선이 짝수면 i/1부터 시작하고, 홀수면 1/i부터 시작하기 때문에 최종적으로 얻은 i의 값에 따라 i + 1 - N의 위치를 조정하여 값을 도출할 수 있었다.
Enjoy Reading This Article?
Here are some more articles you might like to read next: