11399번. atm기

phoenixKim·2023년 11월 17일
0

백준 알고리즘

목록 보기
138/174
  • 비슷하게 했는데 뭔가가 잘못됨...
#include <iostream>
#include <mutex>  // mutex 를 사용하기 위해 필요
#include <thread>
using namespace std;

#pragma comment(lib, "StaticLib1")


#include <vector>
#include <map>
#include <string>


#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include <algorithm>
using namespace std;

#include <shared_mutex>
#include <mutex>
#include <condition_variable>




int main()
{
	// 번호  1 2 3 4 5
	// 비용  3 1 4 3 2 

	// 번호  2 1 3 4 5 
	// 비용  1 3 4 3 2 

	// 번호  2 1 4 3 5 
	// 비용  1 3 3 4 2 

	// 스왑이 2개 배열에서 한꺼번에 일어 나야 함.

	// 5번일 경우에 사이에 들어감.
	// 번호  2 5 1 4 3  
	// 비용  1 2 3 3 4 

	int n; 
	cin >> n;
	vector<int> v(n);
	for (int i = 0; i < n; ++i)
	{
		cin >> v[i];
	}

	for (int i = 1; i < n; ++i)
	{
		// 선택한 인덱스 s 를 뽑아서 
		// 앞에 있는 0번 부터 s - 1까지 비교를 하면서
		// s < j 번까지 하면서 가장 
		int s = i;
		int origin = i;
		int value = v[i];
		for (int j = 0; j <= i - 1; ++j)
		{
			if (v[s] < v[j])
			{
				s = j;
			}
		}
		// 인덱스를 먼저 오른쪽으로 이동해야 함.

		int index = origin - s;
		if (index == 0)
			continue;
		// 인덱스 뺀 횟수만큼 옮기는 작업을 하자.
		for (int k = origin; k > index; --k)
		{
			v[k]= v[k - 1];
		}
		
		v[index - 1] = value;
		for (auto& iter : v)
		{
			cout << iter;
		}
		cout << endl;
		//swap(v[s], v[i]);

	}



}





profile
🔥🔥🔥

0개의 댓글

관련 채용 정보