[알고리즘문제풀기] qr code

silver's avatar
Apr 29, 2025
[알고리즘문제풀기] qr code

문제

내가 작성한 정답

String

class Solution { public String solution(int q, int r, String code) { String answer = ""; for(int i=0; i<code.length(); i++){ if(i%q==r) answer += code.charAt(i); } return answer; } }

StringBuilder

// charAt class Solution { public String solution(int q, int r, String code) { StringBuilder answer = new StringBuilder(); for(int i=0; i<code.length(); i++){ if(i%q==r) answer.append(code.charAt(i)); } return answer.toString(); } } // substring class Solution { public String solution(int q, int r, String code) { StringBuilder answer = new StringBuilder(); for(int i=0; i<code.length(); i++){ if(i%q==r) answer.append(code.substring(i,i+1)); } return answer.toString(); } } // String[] class Solution { public String solution(int q, int r, String code) { StringBuilder answer = new StringBuilder(); String[] c = code.split(""); for(int i=0; i<code.length(); i++){ if(i%q==r) answer.append(c[i]); } return answer.toString(); } } // char[] class Solution { public String solution(int q, int r, String code) { StringBuilder answer = new StringBuilder(); char[] c = code.toCharArray(); for(int i=0; i<code.length(); i++){ if(i%q==r) answer.append(c[i]); } return answer.toString(); } }

stream

// string import java.util.stream.*; class Solution { public String solution(int q, int r, String code) { return IntStream.range(0,code.length()) .filter(i->i%q==r) .mapToObj(i->code.substring(i,i+1)) .reduce("",String::concat); } } // char import java.util.stream.*; class Solution { public String solution(int q, int r, String code) { return IntStream.range(0,code.length()) .filter(i->i%q==r) .mapToObj(i->""+code.charAt(i)) .collect(Collectors.joining()); } }

다른 사람들의 정답

start를 r로 설정하고 q만큼 이동시켜서 if로 조건을 걸지 않았다.
class Solution { public String solution(int q, int r, String code) { StringBuilder sb = new StringBuilder(); for (int i = r; i < code.length(); i += q) sb.append(code.charAt(i)); return sb.toString(); } }
Share article

silver