문제 설명
문자열 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에 넣어주는 방법을 택했는데 다른 사람 코드를 보니 보다 손쉽게 해결할 수 있었다. 저런 방법이 떠오를 수 있도록 좀 더 프로그래밍적 사고를 키워야겠다고 반성 ,,