C++/코딩 기초 트레이닝
[C++/프로그래머스] 세로 읽기
서니션
2023. 10. 25. 13:44
세로 읽기
문제설명
문자열 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