Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

월요팅

[파이썬(Python)] 코딩테스트 연습 - 배열의 길이에 따라 다른 연산하기 본문

파이썬(Python)/코딩테스트

[파이썬(Python)] 코딩테스트 연습 - 배열의 길이에 따라 다른 연산하기

늘결 2024. 7. 9. 18:01

[문제]

정수 배열 arr과 정수 n이 매개변수로 주어집니다. arr의 길이가 홀수라면 arr의 모든 짝수 인덱스 위치에 n을 더한 배열을, arr의 길이가 짝수라면 arr의 모든 홀수 인덱스 위치에 n을 더한 배열을 return 하는 solution 함수를 작성해 주세요.


 

[시행착오]

이 몸... 이걸 어떻게 풀었는지 아는가

def solution(arr, n):
    answer = []
    if len(arr) % 2 == 0 :
        for i in arr:
            if i % 2 == 1:
                i = i + n
                answer.append(i)
            else:
                answer.append(i)
    elif len(arr) % 2 == 1 :
        for i in arr:
            if i % 2 == 0:
                i = i + n
                answer.append(i)
            else:
                answer.append(i)
    return answer

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅠㅠ

코드 너무 더러워 유치해

인덱스가 아니라 그냥 리스트의 요소를 가지고 홀짝을 판별해버림. ㅠㅠ

그리고 else 쓰면 끝날 걸 elif까지 동원... (아 진짜 멍청...)

심지어 저러고 뭐가 문젠지도 몰라서 또 gpt선생님에게 도움을 조금 받았다


[풀이]

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

...

이번 문제의 교훈: 문제를 잘 읽자!