세로 읽기 Lv. 0

박영준·2023년 6월 8일
0

코딩테스트

목록 보기
232/300
class Solution {
    public String solution(String my_string, int m, int c) {
        String answer = "";
        return answer;
    }
}

해결법

방법 1

import java.util.*;

class Solution {
    public String solution(String my_string, int m, int c) {
    
        List<String> result = new ArrayList<>();
        
        for (int i = 0; i < my_string.length(); i += m) {		// 한 행씩 나눠서 담는다.
            String sub = my_string.substring(i, i + m);
            result.add(sub);
        }
        
        String answer = "";
        
        for (String str : result) {				// 지정한 열에서만 문자를 가져와서 answer에 더해준다.
            answer += str.substring(c-1, c);
        }
        
        return answer;
    }
}
  • ArrayList

  • 규칙

    • m = 열 의 개수
    • c = 몇 번째 열을 읽을지
  • 예시 1 : m=4, c=2

    • [0,0]=i, [0,1]=h, [0,2]=r, [0,3]=h
    • [1,0]=b ...
    • happy = [0,1], [1,1], [2,1], [3,1], [4,1]

방법 2

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;
    }
}
  • 배열을 사용하지 않는 방법

  • c - 1 이유?

    • 예시 1을 보면, c=2지만 출력된 happy는 모두 1에서 출력됐다.

세로 읽기 Lv. 0

profile
개발자로 거듭나기!

0개의 댓글