구름level 43205 오늘의 업무 씨쁠쁠/C++/CPP

구름level 43205 오늘의 업무 씨쁠쁠/C++/CPP

#include < iostream >

#include < string >

#include < map >

#include < algorithm >

using namespace std ;

int main() {

int n; int m;

cin > > n > > m;

string * orders = new string [m];

for ( int i = 0 ; i < m; i + + ){

cin > > orders[i];

}

map < int , char > ret;

for ( int i = 0 ; i < n; i + + ){

ret.insert( pair < int , char > (i, char ( int ( 'A' ) + i)));

}

for ( int i = 0 ; i < m; i + + ){

char c1 = orders[i][ 0 ];

char c2 = orders[i][ 1 ];

map < int , char > :: iterator it1;

map < int , char > :: iterator it2;

for (it1 = ret. begin (); it1 ! = ret. end (); it1 + + ){

if (it1 - > second = = c1) break ;

}

for (it2 = ret. begin (); it2 ! = ret. end (); it2 + + ){

if (it2 - > second = = c2) break ;

}

// 순서를 바꾸는 경우

if (it1 - > first > it2 - > first){

// it2까지 it1과 다음 iterator의 second를 변경

while (it1 ! = it2 & & it2 ! = ret. end ()){

swap(it2 - > second, next(it2, 1 ) - > second);

it2 + + ;

}

}

}

for ( int i = 0 ; i < n;i + + ) cout < < ret[i];

return 0 ;

}

from http://nooblette.tistory.com/268 by ccl(A) rewrite - 2021-10-23 13:01:44