문제

 

풀이

위 조건을 만족하면 1, 만족하지 않으면 0 출력

#include <iostream>

using namespace std;

int main() {	
	int a1, a0, c, n0;
	
	cin >> a1 >> a0 >> c >> n0;

	((a1 * n0 + a0 <= c * n0) && (c >= a1)) ? cout << 1 : cout << 0;

	return 0;
}

문제

 

풀이

위 알고리즘의 수행 횟수는 n(n - 1)(n - 2) / 6이고 시간 복잡도는O(n3)이다.

#include <iostream>

using namespace std;

int main() {	
	long long n;
	
	cin >> n;

	cout << n * (n - 1) * (n - 2) / 6 << "\n" << 3;

	return 0;
}

문제

 

풀이

위 알고리즘은 3중 반복문이므로 수행 횟수는 n3, 시간복잡도는 O(n3)이다.

#include <iostream>

using namespace std;

int main() {	
	long long n;
	
	cin >> n;

	cout << n * n * n << "\n" << 3;

	return 0;
}

문제

풀이

위 알고리즘의 수행 횟수는 n (n - 1) / 2이고 시간 복잡도는 O(n2)이다.

#include <iostream>

using namespace std;

int main() {	
	long long n;
	
	cin >> n;

	cout << n * (n - 1) / 2 << "\n" << 2;

	return 0;
}

문제

 

풀이

배열 A를 n만큼 n번 반복하는 이중반복문이기에 수행 횟수는 n2, 시간복잡도는 O(n2)이다.

#include <iostream>

using namespace std;

int main() {	
	long long n;

	cin >> n;

	cout << n * n << "\n" << 2;

	return 0;
}

문제

 

풀이

위 알고리즘은 입력받은 n만큼 반복문을 수행하기 때문에 수행 횟수는 n이고 수행 시간 또한 n이고 시간 복잡도는 O(n)이다.

#include <iostream>

using namespace std;

int main() {	
	int n;

	cin >> n;

	cout << n << "\n" << 1;

	return 0;
}

 

풀이

배열과 변수를 받아 인덱스에 접근하는 것은 상수 시간이 소요되므로 시간 복잡도는 O(1)이다.

#include <iostream>

using namespace std;

int main() {	
	int n;

	cin >> n;

	cout << 1 << "\n" << 0;

	return 0;
}

+ Recent posts