Skip to main content

1. [Java] 암호 해독 - cipher.charAt(i - 1)


https://school.programmers.co.kr/learn/courses/30/lessons/120892

오답

class Solution {
    public String solution(String cipher, int code) {
        StringBuilder sb = new StringBuilder();
        for (int i = code; i <= cipher.length(); code++;) {
            sb.append(cipher[i-1]); // 인덱스는 0부터 시작
        }
        return sb.toString();
    }
}


✅ for문의 증가식 오류
for (int i = code; i <= cipher.length(); code++;)
  • → code++→ 증가식 자리에 있어야 할 변수는 i (반복 제어 변수)
  • → code++는 code 값을 계속 바꿔버려서 논리적으로도 틀림


✅ 문자열 인덱스 접근 오류
  • Java에서 문자열은 []로 접근 불가 → charAt(index) 사용해야 함


정답 코드

class Solution {
    public String solution(String cipher, int code) {
        StringBuilder sb = new StringBuilder();
        for (int i = code; i <= cipher.length(); i += code) {
            sb.append(cipher.charAt(i - 1)); // 인덱스는 0부터 시작
        }
        return sb.toString();
    }
}