세로 읽기
문제설명
문자열 my_string과 두 정수 m, c가 주어집니다. my_string을 한 줄에 m 글자씩 가로로 적었을 때 왼쪽부터 세로로 c번째 열에 적힌 글자들을 문자열로 return 하는 solution 함수를 작성해 주세요.
제한사항
- my_string은 영소문자로 이루어져 있습니다.
- 1 ≤ m ≤ my_string의 길이 ≤ 1,000
- m은 my_string 길이의 약수로만 주어집니다.
- 1 ≤ c ≤ m
입출력 예
작성코드
#include <string>
#include <vector>
using namespace std;
string solution(string my_string, int m, int c) {
string answer = "";
vector<string> rows;
int length = my_string.length();
// 문자열을 m 글자씩 나누어서 rows 벡터에 저장
for (int i=0; i < length; i+=m)
{
string row = my_string.substr(i, m);
rows.push_back(row);
}
// c번째 열의 글자들을 결과 문자열에 추가
for (const auto& row : rows)
{
if ( c - 1 < row.length())
{
answer += row[c-1];
}
}
return answer;
}
문제 URL
https://school.programmers.co.kr/learn/courses/30/lessons/181904
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'C++ > 코딩 기초 트레이닝' 카테고리의 다른 글
[C++/프로그래머스] 문자 개수 세기 (0) | 2023.10.25 |
---|---|
[C++/프로그래머스] qr code (0) | 2023.10.25 |
[C++/프로그래머스] 문자열 뒤집기 (0) | 2023.10.25 |
[C++/프로그래머스] 접두사인지 확인하기 (0) | 2023.10.25 |
[C++/프로그래머스] 문자열의 앞의 n글자 (0) | 2023.10.25 |