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