문제 풀이/프로그래머스

프로그래머스 lv0 암호해독

춘핑이 2023. 2. 21. 16:42

문제

군 전략가 머쓱이는 전쟁 중 적군이 다음과 같은 암호 체계를 사용한다는 것을 알아냈습니다.
암호화된 문자열 cipher를 주고받습니다.
그 문자열에서 code의 배수 번째 글자만 진짜 암호입니다.
문자열 cipher와 정수 code가 매개변수로 주어질 때 해독된 암호 문자열을 return하도록 solution 함수를 완성해주세요.

내 풀이

public String solution(String cipher, int code) {
        String answer = "";
        for (int i = 1; i <= cipher.length(); i++) {
            if (i % code == 0) {
                answer += cipher.charAt(i - 1);
            }
        }
        return answer;
    }

cipher문자열의 index를 1부터시작해서 각 배수를 가져옴
for문은 i가 그 배수일때마다 값을 누적하는 코드를 작성
실제로 그 index는 i-1번째니 charAt(i - 1)을 해준다.
ex) 2번째문자(index는 0부터니 실제로는 1번)

강시님 풀이

for (int i = code; i <= cipher.length(); i += code) {
    answer += cipher.charAt(i - 1);
}

code부터시작해서 code를 증감하는 식
if연산을 안해도되니 더빠를 듯하다.