세로 읽기

nacSeo (낙서)·2024년 1월 30일
0

프로그래머스

목록 보기
43/169

문제 설명

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

제한 사항

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

나의 코드

class Solution {
    public String solution(String my_string, int m, int c) {
        String answer = "";
        int temp = my_string.length()/m;
        String[][] arr = new String[temp][m];
        for(int i=0; i<temp; i++) {
            for(int j=0; j<m; j++) {
                arr[i][j] = my_string.substring(i*m+j, i*m+j+1);
            }
        }
        for(int i=0; i<temp; i++) {
            answer += arr[i][c-1];
        }
        return answer;
    }
}

다른 사람 코드

class Solution {

    public String solution(String my_string, int m, int c) {
        String answer = "";

        for (int i = c - 1; i < my_string.length(); i += m) {
            answer += my_string.charAt(i);
        }
        return answer;
    }
}

느낀 점

나는 2차원 배열을 이용해 m씩 잘라가며 담은 후, 해당 배열값을 answer에 넣어주는 방법을 택했는데 다른 사람 코드를 보니 보다 손쉽게 해결할 수 있었다. 저런 방법이 떠오를 수 있도록 좀 더 프로그래밍적 사고를 키워야겠다고 반성 ,,

profile
백엔드 개발자 김창하입니다 🙇‍♂️

0개의 댓글