[알고리즘문제풀기] 세로 읽기

silver's avatar
Apr 08, 2025
[알고리즘문제풀기] 세로 읽기

문제

내가 작성한 정답

String

class Solution { public String solution(String my_string, int m, int c) { String answer = ""; for(int i=0; i<my_string.length(); i+=m){ answer += String.valueOf(my_string.charAt(c-1+i)); } return answer; } }

StringBuilder, StringBuffer

class Solution { public String solution(String my_string, int m, int c) { StringBuilder answer = new StringBuilder(); // StringBuffer answer = new StringBuffer(); for(int i=0; i<my_string.length(); i+=m){ answer.append(String.valueOf(my_string.charAt(c-1+i))); } return answer.toString(); } }

2차 배열

class Solution { public String solution(String my_string, int m, int c) { //StringBuilder answer = new StringBuilder(); //StringBuffer answer = new StringBuffer(); String answer = ""; int len = my_string.length(), le = len%m==0?len/m:len/m+1, idx = 0; String[][] ms = new String[le][m]; for(int i=0; i<le; i++){ for(int j=0; j<m; j++){ ms[i][j] = String.valueOf(my_string.charAt(idx++)); } } for(int i=0; i<le; i++){ //answer.append(ms[i][c-1]); answer += ms[i][c-1]; } //return answer.toString(); return answer; } }

Stream

import java.util.stream.*; class Solution { public String solution(String my_string, int m, int c) { return IntStream.range(0,my_string.length()%m==0?my_string.length()/m:my_string.length()/m+1) .mapToObj(i-> my_string.substring(i*m,(i+1)*m)) .map(s->String.valueOf(s.charAt(c-1))) .collect(Collectors.joining()); } }

다른 사람들의 정답

import java.util.stream.*; class Solution { public String solution(String myString, int m, int c) { return IntStream.range(0, myString.length()) .filter(i -> i % m == c - 1) .mapToObj(i -> String.valueOf(myString.charAt(i))) .collect(Collectors.joining()); } }
Share article

silver