Language/C++

[백준] 시간초과..

개ㅁI 2022. 8. 9. 23:45

1193번을 풀었는데 계속 시간초과가 나온다..

내 알고리즘은 틀리지 않았는데.. 

 

어떻게 해야 시간을 줄일 수 있는 것인가?

 

선배님이 for문 안에 for 문을 더 쓸 때 마다 제곱수로 시간이 더 걸린다고 한다.

그리고 웬만하면 while(1) 쓰지말것!!

#include <iostream>
using namespace std;

int main() {
	cin.tie(NULL); 
	ios::sync_with_stdio(false);

	int num;
	cin >> num;

	int x = 1, y = 1;
	int count = 1;

	while (1) {

		if (x == 1) {
			y++;
			count++;

			if (count == num) {
				cout << x << "/" << y;
				break;
			}

			while (y != 1) {
				y--;
				x++;
				count++;

				if (count == num) {
					cout << x << "/" << y;
					break;
				}
			}

		}

		else if (y == 1) {
			x++;
			count++;

			if (count == num) {
				cout << x << "/" << y;
				break;
			}

			while (x != 1) {
				x--;
				y++;
				count++;

				if (count == num) {
					cout << x << "/" << y;
					break;
				}
			}
		}

		if (count == num) {
			break;
		}
	}
}

 

2869번도 시간초과가 나옴..

#include <iostream>
using namespace std;

int main() {
	cin.tie(NULL); 
	ios::sync_with_stdio(false);

	int A, B, V;
	cin >> A >> B >> V;
	int total_up = 0;
	int count = 1;

	total_up = A;

	while (total_up < V) {
		count++;
		total_up += A - B;
	}
	
	cout << count;
	
}

 

728x90