내일배움캠프/C# 문제

Programmers 코딩테스트

danpat77 2025. 2. 21. 21:03

세로읽기

 

문제 설명

문자열 my_string과 두 정수 m, c가 주어집니다. my_string을 한 줄에 m 글자씩 가로로 적었을 때 왼쪽부터 세로로 c번째 열에 적힌 글자들을 문자열로 return 하는 solution 함수를 작성해 주세요.

 

제한사항

  • my_string은 영소문자로 이루어져 있습니다.
  • 1 ≤ m ≤ my_string의 길이 ≤ 1,000
  • m은 my_string 길이의 약수로만 주어집니다.
  • 1 ≤ c ≤ m

입출력 예

my_string m c result
"ihrhbakrfpndopljhygc 4 2 "happy"
"programmers" 1 1 "programmers"

.2열에 적힌 글자를 세로로 읽으면 happy이므로 "happy"를 return 합니다.

 

using System;

public class Solution {
    public string solution(string my_string, int m, int c) {
        int rows = my_string.Length / m; // 행 개수
        char[] result = new char[rows]; // 결과를 저장할 배열
        
        for (int i = 0; i < rows; i++) {
            result[i] = my_string[i * m + (c - 1)]; // c번째 열의 문자 선택
        }

        return new string(result); // 배열을 문자열로 변환하여 반환
    }
}

my_string의 길이를 m으로 나누어 행의 개수를 구하고 구한 행의 갯수만큼 배열의 길이를 설정 해줍니다

 

반복문을 통해 c번째 열의 문자열을 선택해 result 배열에 저장합니다.

 

new string(result)를 통해 문자 배열을 문자열로 변환하여 반환합니다.