문제 링크
https://www.acmicpc.net/problem/10798
쉬운 문제지만, 보기 쉽고 최적화를 생각하자 다짐한 기념으로 풀어보았다.
◆문제 해결 및 설명◆
문제 해설 : 5줄에 걸쳐 입력되는 문자열을 세로로 읽어서 한줄로 출력하여라.
사람이야 Board에 작성하면 세로로 보기 쉽지만, 컴퓨터는 vector의 경우 데이터 접근시 그 행을 캐싱함으로 세로로 읽는데에는 시간이 조금더 소요될 것이라고 생각했다. 따라서 한줄의 입력을 받고 이를 문자의 위치에 따라서 다른 배열에 넣어 주었다.
이렇게 완성된 배열을 차례대로 출력함으로 문제를 풀었다.
◆코드 전문◆
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<string> board(15);
for (int i = 0; i < 5; i++)
{
string oneLine;
getline(cin, oneLine);
for (int j = 0; j < oneLine.size(); j++)
{
board[j].push_back(oneLine[j]);
}
}
for (string oneValue : board)
{
cout << oneValue;
}
return 0;
}
'코딩 공부 > 백준(C++)' 카테고리의 다른 글
[백준 1655][C++] 가운데를 말해요 (0) | 2023.10.31 |
---|---|
[백준 2563][C++] 색종이 (0) | 2023.10.29 |
[백준 4781][C++] 사탕 가게 (0) | 2023.10.26 |
[백준 14497][C++] 주난이의 난(難) (1) | 2023.10.21 |
[백준 13549][C++] 알파벳 (1) | 2023.10.21 |