본문 바로가기
  • 머킹이의 머신로그
오늘부터 코딩테스트

[오늘부터 코딩테스트]파이썬으로 프로그래머스 코딩 기초 프로그램 풀기

by 머킹 2023. 10. 11.
728x90

[파이썬] 프로그래머스 Lv0. n 번째 원소까지, n개 간격의 원소들, 홀수 vs 짝수

안녕하세요 머킹입니다.

오늘 오후에 자연어 처리 프로젝트 발표를 하는데

개인으로 해서 그런지 엄청나게 준비할 것들이 많네요!

피피티도 만들고 계속 코드도 돌리고...

모델은 많이 못돌릴 것 같아서 처음에 비교하고 싶다는 그런 목표는 

추후에 계속 도전해볼 것 같습니다.ㅎㅎ


n 번째 원소까지

 

문제 설명

정수 리스트 num_list와 정수 n이 주어질 때, 

num_list의 첫 번째 원소부터 n 번째 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.

 

def solution(num_list, n):
    answer = []
    append.answer(num_list[:n+1])
    return answer

단순하게 append?라고 바로 떠올렸는데

아무래도 이 방법은 아닌 것 같습니다.

 

def solution(num_list, n):
    return num_list[:n]

생각해보니까 더 단순한 방법이 있었습니다.ㅎㅎ


n개 간격의 원소들

 

문제 설명

정수 리스트 num_list와 정수 n이 주어질 때, 

num_list의 첫 번째 원소부터 마지막 원소까지 n개 간격으로 저장되어있는 원소들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.

def solution(num_list, n):
    return num_list[::n]

이것도 위랑 비슷해서 되게 쉽게 풀었습니다.


홀수 vs 짝수

 

문제 설명

정수 리스트 num_list가 주어집니다.

가장 첫 번째 원소를 1번 원소라고 할 때, 홀수 번째 원소들의 합과

짝수 번째 원소들의 합 중 큰 값을 return 하도록 solution 함수를 완성해주세요.

두 값이 같을 경우 그 값을 return합니다.

def solution(num_list):
    odd_sum = 0
    even_sum = 0

    for i in range(len(num_list)):
        if i % 2 == 0:
            even_sum += num_list[i]
        else:
            odd_sum += num_list[i]

    return max(odd_sum, even_sum)

일단 짝수끼리 더할 변수와 홀수끼리 더할 변수를 정해두고

그다음에 리스트를 돌면서 if 문을 썼습니다.

이제 제가 생각하는 로직대로 답이 나와서 좀 신기한 것 같아요.

 

def solution(num_list):
    return max(sum(num_list[::2]), sum(num_list[1::2]))

다른 사람들의 풀이가 궁금해서 항상 보는데

이런 풀이법도 있네요!