주니어 기초 코딩공부/JAVA_programmers_코딩테스트
암호 해독_programmers_lev00
jju_developer
2022. 12. 6. 14:30
728x90
<코딩 테스트>
군 전략가 머쓱이는 전쟁 중 적군이 다음과 같은 암호 체계를 사용한다는 것을 알아냈습니다.
암호화된 문자열 cipher를 주고받습니다.
그 문자열에서 code의 배수 번째 글자만 진짜 암호입니다.
문자열 cipher와 정수 code가 매개변수로 주어질 때 해독된 암호 문자열을 return하도록 solution 함수를 완성해주세요.
<나의 풀이 과정>
처음에 배열을 초기화 할때 String[] arr = new String [ cipher.length ];로 초기화를 하면 에러가 나는 부분을
String[] arr = chipher.split으로 변경하여 코딩하였습니다.
그 후 code를 증감식에서 i와 곱하기 하고 싶었으나, 불가하여,
i에 code만큼을 더해주면서 증감식을 진행하였습니다.
<나의 풀이 코드>
class Solution {
public String solution(String cipher, int code) {
String answer = "";
String[] arr = cipher.split("");
for (int i = code; i <= cipher.length();i+=code) {
answer += arr[i-1];
}
return answer;
}
}
<다른사람 풀이 1>
class Solution {
public String solution(String cipher, int code) {
String answer = "";
for (int i = code; i <= cipher.length(); i = i + code) {
answer += cipher.substring(i - 1, i);
}
return answer;
}
}
substring(int beginIndex, int endIndex) 니까 i의 인덱스-1 부터 i 전까지니까 뒤에있는 i는 무시가 됨.
<다른사람 풀이 2>
import java.util.*;
class Solution {
public String solution(String cipher, int code) {
String[] arr = cipher.split("");
StringBuilder sb = new StringBuilder();
int x = code-1;
while(x < arr.length) {
sb.append(arr[x]);
x += code;
}
return sb.toString();
}
}
728x90