전산 관련 시험/프로그래밍(C, JAVA, Python)

[JAVA] 프로그래밍 언어 (ex.18)

응_비 2024. 10. 6. 18:15
public class Example18 {
    static void change(char arr[]) {
        for(int i = 0; i < arr.length; i++) {
            if(arr[i] == 'b') 
                arr[i] = 'c';  // 배열의 요소가 'b'인 경우 'c'로 변경
            else if(i == arr.length - 1) 
                arr[i] = arr[i - 1];  // 배열의 마지막 요소인 경우 바로 앞의 요소 값으로 변경
            else 
                arr[i] = arr[i + 1];  // 그 외의 경우 다음 인덱스의 값으로 변경
        }
    }

    static void prtarr(char arr[]) {
        for(int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]);  // 배열의 모든 요소를 출력
        }
    }

    public static void main(String[] args) {
        char[] a = {'a', 'b', 'c', 'b', 'c', 'd', 'a'};  // 초기 배열 선언 및 초기화
        change(a);  // change 메서드를 호출하여 배열을 수정
        prtarr(a);  // prtarr 메서드를 호출하여 수정된 배열 출력
    }
}

 

  1. 초기 배열:
    • 배열 a는 다음과 같이 초기화됩니다: ['a', 'b', 'c', 'b', 'c', 'd', 'a'].
  2. java
    char[] a = {'a', 'b', 'c', 'b', 'c', 'd', 'a'};
  3. change 메서드 실행:
    • 배열의 각 요소에 대해 다음 조건에 따라 변경합니다:
    java
    if(arr[i] == 'b') arr[i] = 'c'; // 요소가 'b'인 경우 'c'로 변경
    • 배열의 요소가 'b'인 경우 이를 'c'로 변경합니다.
    java
    else if(i == arr.length - 1) arr[i] = arr[i - 1];
    • 배열의 마지막 요소인 경우, 즉 인덱스 i가 배열의 길이보다 1 작은 값일 때(i == arr.length - 1), 해당 요소를 바로 앞 요소의 값으로 변경합니다.
    java
    else arr[i] = arr[i + 1];
    • 위 두 조건에 해당하지 않으면, 현재 요소를 다음 인덱스의 값으로 변경합니다.
  4. change 메서드의 실행 결과:
    • 각 반복에서 배열의 요소는 다음과 같이 변경됩니다:
    1. i = 0: 'a'는 다음 요소 'b'로 변경됩니다.
      결과: ['b', 'b', 'c', 'b', 'c', 'd', 'a']
    2. i = 1: 'b'는 'c'로 변경됩니다.
      결과: ['b', 'c', 'c', 'b', 'c', 'd', 'a']
    3. i = 2: 'c'는 다음 요소 'b'로 변경됩니다.
      결과: ['b', 'c', 'b', 'b', 'c', 'd', 'a']
    4. i = 3: 'b'는 'c'로 변경됩니다.
      결과: ['b', 'c', 'b', 'c', 'c', 'd', 'a']
    5. i = 4: 'c'는 다음 요소 'd'로 변경됩니다.
      결과: ['b', 'c', 'b', 'c', 'd', 'd', 'a']
    6. i = 5: 'd'는 다음 요소 'a'로 변경됩니다.
      결과: ['b', 'c', 'b', 'c', 'd', 'a', 'a']
    7. i = 6: 인덱스 6은 배열의 마지막 요소이므로, 해당 요소를 바로 앞 요소의 값으로 변경합니다.
      결과: ['b', 'c', 'b', 'c', 'd', 'a', 'a']
    최종적으로 change 메서드가 완료된 후 배열은 ['b', 'c', 'b', 'c', 'd', 'a', 'a']가 됩니다.
  5. prtarr 메서드 실행:
    • 배열의 모든 요소를 출력합니다.
    • 결과적으로 "bcbcdaa"`가 출력됩니다.

최종 출력 결과

bcbcd`aa
 

요약

  • change 메서드는 배열의 각 요소를 조건에 맞게 변경합니다.
  • 최종 배열은 ['b', 'c', 'b', 'c', 'd', 'a', 'a']가 됩니다.
  • prtarr 메서드는 이 배열을 그대로 출력합니다.