Algorithm/문제풀이

배열의 길이에 따라 다른 연산하기

Python Developer 2025. 3. 1. 01:20

배열의 길이에 따라 다른 연산하기 (Python)

📝 문제 설명

한 배열을, arr의 길이가 짝수라면 arr의 모든 홀수 인덱스 위치에 n을 더한 배열을 return 하는 solution 함수를 작성해 주세요.


📌 제한사항

  • 1 ≤ arr의 길이 ≤ 1,000
  • 1 ≤ arr의 원소 ≤ 1,000
  • 1 ≤ n ≤ 1,000

🔽 입출력 예

arr n result
[49, 12, 100, 276, 33] 27 [76, 12, 127, 276, 60]
------------ ------------ ------------ ------------ ------------ ------------ ------------
[444, 555, 666, 777] 100 [444, 655, 666, 877]

📖 입출력 예 설명

  • 예제 1번의 arr의 길이는 5로 홀수입니다. 따라서 arr의 짝수 인덱스 0, 2, 4에 주어진 n 값인 27을 더하면 [76, 12, 127, 276, 60]이 됩니다. 따라서 [76, 12, 127, 276, 60]를 return 합니다.
  • 예제 2번의 arr의 길이는 4로 짝수입니다. 따라서 arr의 홀수 인덱스 1, 3에 주어진 n 값인 100을 더하면 [444, 655, 666, 877]이 됩니다. 따라서 [444, 655, 666, 877]를 return 합니다.

💡 문제 해결 접근

def solution(arr, n):

    even_true = 1 if len(arr) % 2 == 0 else 0

    for idx in range(len(arr[even_true::2])):

        idx = (idx * 2) + even_true
        arr[idx] = arr[idx] + n

    answer = arr

    return answer

🏆 정답 코드

def solution(arr, n):
    N=len(arr)
    if N%2:
        for i in range(0,N,2): arr[i]+=n
    else:
        for i in range(1,N,2): arr[i]+=n
    return arr

🔥 느낀 점

홀수, 짝수 인덱스 배열 구하기 range(0,N,2) 활용

'Algorithm > 문제풀이' 카테고리의 다른 글

배열 비교하기  (0) 2025.03.01
대소문자 바꿔서 출력하기  (0) 2025.02.28