[프로그래머스] 배열 조각하기

이준영·2026년 1월 4일

이것도 걍 매주 작성하고 있긴한데, 앞으로는 문제를 풀지 못해서 AI 도움 받은것만 작성하도록 하기로 하였다.

배열 조각하기

문제 소개

문제 소개
  • Query[i]가 짝수면, 해당 인덱스(query[i]) 뒤를 짜르기
  • Query[i]가 홀수면, 해당 인덱스(query[i]) 앞을 짜르기

나의 문제 접근 방법

  1. Query 배열을 순회
  2. 홀수 짝수에 따라, 배열 크기 Resize 후 Copy
  3. answer 배열을 리턴

이런 방식으로 코드를 작성하려고 했으나 문제가 생겼다.

문제점 1) arr 배열을 answer 배열에 복제를 하였으나, arr 배열 자체에 변화가 없어서 의도데로 작동하지 않음.
문제점 2) arr 배열을 다시 리사이즈할 때, 데이터 손실이 생김.

이렇게 작성할 땐, 가독성에도 불편해져서 결국 AI의 도움을 받았다.

해결 방법

  1. start와 end 인덱스 번호만 값을 변경하기
  2. 계산된 start와 end을 answer배열에 복제하기
  3. answer 배열을 리턴

이렇게 접근하니 매우 코드가 간편해졌다.

해결 방법
  • 계속 변화하는 start 값을 주목하면 된다.
  1. 시작 상태: start = 0, end = 5 (배열 전체: [0, 1, 2, 3, 4, 5])

  2. 1단계 (i=0, 짝수): query[0]은 4

    end = 0 + 4 = 4가 됩니다.

    이제 범위는 [0] ~ [4]가 되어 배열은 [0, 1, 2, 3, 4]

  3. 2단계 (i=1, 홀수): query[1]은 1입니다.

    start = 0 + 1 = 1이 됩니다.

    이제 범위는 [1] ~ [4]가 되어 배열은 [1, 2, 3, 4]

  4. 3단계 (i=2, 짝수): query[2]은 2입니다.

    end = 1 + 2 = 3이 됩니다.

    이제 범위는 [1] ~ [3]이 되어 최종 배열은 [1, 2, 3]

다른 사람 풀이

다른 사람 풀이
  • 내가 처음에 접근한 방식과 비슷한 방식인데, List로 접근을 하여서 잘 된 것 같다.
profile
게임 개발자가 되기 위해서 공부하는 중입니다.

0개의 댓글