문제
내가 작성한 정답
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