알고리즘 공부

백준 줄세우기

컴퓨터과학 2023. 7. 30. 21:55

https://www.acmicpc.net/problem/10431

 

10431번: 줄세우기

초등학교 선생님 강산이는 아이들을 데리고 단체로 어떤 일을 할 때 불편함이 없도록 새로 반에 배정받은 아이들에게 키 순서대로 번호를 부여한다. 번호를 부여할 땐 키가 가장 작은 아이가 1

www.acmicpc.net

버블정렬문제? 쉽네요

#include <iostream>
#include <vector>
#include <queue>
#include<string>
#include<algorithm>
#include<cmath>
#include<unordered_map>
#include<map>
#include<stack>
using namespace std;

struct Point {
	int i, j, t, cnt, power;
	char c;
};

void Prints(vector<vector<int>>maps, int n, int m) {
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			cout << maps[i][j] << " ";
		}
		cout << endl;
	}
	cout << endl;
}

void Prints(vector<vector<bool>>maps, int n, int m) {
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			cout << maps[i][j]<<" ";
		}
		cout << endl;
	}
	cout << endl;
}
void Prints(vector<vector<char>>maps, int n, int m) {
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			cout << maps[i][j];
		}
		cout << endl;
	}
	cout << endl;
}
void Prints(vector<vector<vector<char>>>maps, int n, int m, int k) {
	for (int t = 0; t < k; t++) {
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				cout << maps[t][i][j];
			}
			cout << endl;
		}
		cout << endl;
	}
	cout << endl;
}

void Prints(vector<vector<vector<bool>>>maps, int n, int m, int k) {
	for (int t = 0; t < k; t++) {
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				cout << maps[t][i][j];
			}
			cout << endl;
		}
		cout << endl;
	}
	cout << endl;
}
void Prints(vector<int>line,int n) {
	for (int i = 0; i < n; i++) {
		cout << line[i]<<"," ;
	}
	cout << endl;
}
void Prints(string str, int n) {
	for (int i = 0; i < n; i++) {
		cout << str[i] << ",";
	}
	cout << endl;
}

struct Data {
	int index;
	int value;
};

int main() {
	
	//
	int t;
	cin >> t;
	
	vector< Data>anw;
	for (int k = 0; k < t; k++) {
		vector<int>line;
		int c;
		cin >> c;
		for (int i = 0; i < 20; i++) {
			int tmp;
			cin >> tmp;
			line.push_back(tmp);
		}
		int cnt = 0;
		int start = 0;
		int end = 0;
		for (int i = 0; i < 20; i++) {
			
			for (int j = i; j < 20; j++) {
				if (line[i] > line[j]) {//9 < //15
					int tmp;
					tmp = line[j];
					line[j] = line[i];
					line[i] = tmp;
					cnt++;
				}
				//Prints(line, 20);
			}
		}
		//cout << cnt << endl;
		Data d;
		d.index = c;
		d.value = cnt;
		anw.push_back(d);
	}
	for (int i = 0; i < anw.size(); i++) {
		cout << anw[i].index << " " << anw[i].value << endl;
	}
	return 0;
}