지난주에 못 다 푼 백준 알고리즘 8단계를 마저 풀어볼 것이다!
/*
1 2 3 4 5 6 7 8 9 10
1 2 6 7 15 16 28 29 45 46 _x
3 5 8 14 17 27 30 44 47
4 9 13 18 26 31 43 48
10 12 19 25 32 42 49
11 20 24 33 41 50
21 23 34 40 51
22 35 39 52
36 38 53
37 54
55
_y
차이값
0 1 2 3 4 5
---------------
_x : 1 4 1 8 1 12 1 16 1 20
_y : 2 1 6 1 10 1 14 1 18
*/
#include <iostream>
using namespace std;
int main()
{
int X;
cin >> X;
int XX=0;
int c = 0;
while (XX < X)
{
XX += c + 1;
c++;
}
int _x = 0;
int _y = 0;
if (c % 2 == 0) // x 기준 오름차
{
_y = (XX - X) + 1;
_x = c - _y+1;
}
else // x 기준 내림차
{
_y = c - (XX - X);
_x = c - _y+1;
}
cout << _x<<"/"<< _y;
}
33
5/4
이번 문제도 시간 제한이 있는 문제로
반복문을 사용하지않는 코드를 작성하였다
정상에 도착할 경우 미끄러지지않는 조건이 있기
V-A 위치를 구함
A-B == 하루에 올라갈 수 있는 값
V-A / A-B 를 구하면 올라가는데 필요한 값이 나온다
나머지 값이 있을경우 모자란 하루를 더 더해준다
#include <iostream>
using namespace std;
int main()
{
int A, B, V;
cin >> A >> B >> V;
int x =0;
if (((V - A) % (A - B)) > 0)
x += ((V - A) / (A - B)) + 1;
else
x += ((V - A) / (A - B));
cout << x+1;
}
6 2 16
4