N

(SWEA c++)5356. 의석이의 세로로 말해요 본문

SW Expert Academy

(SWEA c++)5356. 의석이의 세로로 말해요

naeunchan 2020. 11. 13. 23:53
728x90
반응형

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWVWgkP6sQ0DFAUO&categoryId=AWVWgkP6sQ0DFAUO&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

string형 벡터 v에 5개의 단어를 저장한다.

이때, 가장 긴 단어의 길이를 max 변수에 저장한다.

 

이중 for문을 사용.

세로로 읽어야 하므로 바깥 for문은 0 ~ max까지,

안쪽 for문은 단어의 행 위치인 0 ~ 5까지 반복하면 된다.

 

만약 해당 행의 단어의 길이가 현재 세로 인덱스인 col보다 크다면

문자를 넣어주면 답을 찾을 수 있다.

 

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main(void)
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    int t;
    cin >> t;
    
    for(int tc = 1; tc <= t; tc++)
    {
        vector<string> v;
        int max = 0;
        string s, ans = "";
        
        for(int i = 0; i < 5; i++)
        {
            cin >> s;
            max = max < s.size() ? s.size() : max;
            v.push_back(s);
        }
        
        for(int col = 0; col < max; col++)
        {
         	for(int row = 0; row < 5; row++)
            {
                if(v[row].size() > col)
                	ans += v[row][col];
            }
        }
        cout << "#" << tc << " " << ans << endl;
    }
    return 0;
}
728x90
반응형