학사 나부랭이

백준 1494 - 다이나믹 프로그래밍, 이진 탐색 본문

塵箱/코드 삽질

백준 1494 - 다이나믹 프로그래밍, 이진 탐색

태양왕 해킹 (14세) 2021. 4. 17. 22:07
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
	cin.tie(0);
	long long f, s,  n2, inst, bef[2][50];
	int n, high, low, piv;
	bool chk;
	cin >> f >> s >> n;
	for (int i = 0; i < n; i++) bef[0][i] = -1; //인덱스, b[1][i]는 값
	for (int i = 0; i < n; i++) {
		chk = false;
		cin >> inst;
		high = i; low = 0;
		while (1) { //인덱스를 찾아 이진탐색...이었는데 안 해줘도...
			piv = (high + low) / 2;
			if (bef[0][piv] == -1) break;
			if (bef[0][piv] < inst) low = piv + 1;
			else if (bef[0][piv] > inst) high = piv - 1;
			else if (bef[0][piv] == inst) {
				chk = true;
				break;
			}
			if (low > high) break;
		}
		if (!chk) {
			bef[1][i] = f;
			n2 = s;
			for (long j = 1; j <= inst; j++) { //0번째는 굳이 이러지 않고 바로 출력하면 되니까
				swap(bef[1][i], n2);//값2를 저장
				n2 = abs(bef[1][i] - n2); //|res1 -= res2|
				bef[0][i] = j; //생각해보니 굳이 활용할 방도가 없는 친구
			}
		}
		cout << bef[1][i] << "\n";
		sort(bef[0], bef[0] + i);
	}
}

시간복잡도 n * (logn + inst)인데도 시간초과ㅠㅠㅠ

+) 바보야 n * (log n + inst + nlog n)이겠지! sort는 어디 또 빼먹고! 으이! 차라리 sort를 빼고 이진탐색 말고 그냥 리니어 탐색 하는게 훨씬 낫겠다! 이러니까 코딩 못 한다고 놀리지! 쫌! 굳이 베베 꼬지 마라고! 옛날부터 그래!

'塵箱 > 코드 삽질' 카테고리의 다른 글

백준 15829 - 모듈러 연산  (0) 2021.04.20
백준 10866 - 덱  (0) 2021.04.19
Floyd algorithm  (0) 2021.04.16
백준 2164 - 큐 구현  (0) 2021.04.16
Strassen function  (0) 2021.04.04
Comments