본문 바로가기
코딩테스트 연습

세로 읽기

by 신재은👩🏼‍💻 2024. 4. 18.

문제 설명
문자열 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"


import java.util.stream.IntStream;
import java.util.stream.Collectors;

class Solution {
    public String solution(String my_string, int m, int c) {
        String answer = "";
        
        answer = IntStream.range(0, my_string.length() / m)
            .mapToObj(i -> String.valueOf(my_string.charAt(i * m + c - 1)))
            .collect(Collectors.joining());
        
        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;
    }
}

 

이건 남들이 더 잘한 것 같다...

'코딩테스트 연습' 카테고리의 다른 글

이차원 배열 대각선 순회하기  (0) 2024.04.19
중복된 문자 제거  (0) 2024.04.19
369게임  (0) 2024.04.18
합성수 찾기  (0) 2024.04.18
피자 나눠 먹기 (2)  (0) 2024.04.18