ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1228.암호문1
    알고리즘/SW Expert Academy 2020. 3. 29. 18:07

    이번에 풀 문제는 Sw expert의 1228 암호문1이다.

    이 문제는 STL list 사용법을 익히는데 도움이 되었던 것 같다.

    생각보다 오래걸렸고 그 이유는 입력받는 부분에서 헤맸다..;;

    또한 구현 시에 입력하는 방법에 대해서도 생각을 다시해보게 되었다.

    입력을 구현하는 것도 굉장히 중요하다는 것을 깨달았다.

     

    < Code 설명 >

    #include <iostream>
    #include <list>
    
    using namespace std;
    
    int main() {
        for(int e=1; e<=10; e++ ){ // 테스트 케이스가 10개
            list<int> ans;  // 암호문 리스트를 생성해주자
            int n;          // 암호문 길이
            cin >> n;       // 입력
            for(int i=0; i<n; i++){ // 첫 번째 정수는 원본 암호문 길이
                int a;              // 암호문 변수
                cin >> a;           // 하나씩 받아서
                ans.push_back(a);   // list에 넣어준다
            }
            int m;                  // 명령어 갯수
            cin >> m;               // 입력
            for(int i=0; i<m; i++){ // 명령어 길이만큼 입력받기
                char b;             // 명령어를 나누는 기준 '|' 변수
                cin >> b;           // 입력받아서 다음 걸 받도록 하자
                int x, y;           // 명령어가 삽입될 위치와 길이
                cin >> x >> y;      // 입력
                list<int>ans2;      // 명령어가 저장될 리스트
                for(int j=0; j<y; j++){ // 명령어 길이만큼 입력
                    int c;             // 명령어 변수
                    cin >> c;          // 하나씩 입력받아서
                    ans2.push_back(c); // 명령어 리스트에 저장
                }
                list<int>::iterator it = ans.begin(); // 암호문 시작을 나타내는 iter
                for(int k=0; k<x; k++) // 삽입할 위치만큼 iterator를 옮기기 위함
                    it++;              // 옮김
                ans.splice(it,ans2);   // 암호문 리스트의 iter 위치에 명령어 리스트 삽입
            }
            cout <<endl;
            cout << '#' << e << " ";
            for(int z=0; z<10; z++){   // 암호문 10개만 출력하면 되므로
                cout << ans.front() << " "; // 암호문 제일 앞에서 부터 출력
                ans.pop_front();            // 출력한 건 pop으로 빼줌
            }
            cout << endl;
        }
        return 0;
    }
    

     

    반드시 알아야할 TIP!!

    # 입력받는 것도 잘 생각하고 받자!

    # list 사용법 등 STL은 기본!

    반응형

    '알고리즘 > SW Expert Academy' 카테고리의 다른 글

    5644.무선충전  (0) 2020.06.02
    1229.암호문2  (0) 2020.03.31
    1226.미로1 & 1227.미로2  (0) 2020.03.26
    1225. 암호생성기  (0) 2020.03.24
    1224.계산기3  (0) 2020.03.24

    댓글

Designed by Tistory.