[프로그래머스 Python] 코딩 기초 트레이닝 Day 13 - 리스트(배열)
1. n 번째 원소부터
정수 리스트 num_list와 정수 n이 주어질 때, n 번째 원소부터 마지막 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.
제한사항
- 2 ≤ num_list의 길이 ≤ 30
- 1 ≤ num_list의 원소 ≤ 9
- 1 ≤ n ≤ num_list의 길이
코드 작성
def solution(num_list, n):
return num_list[n-1:]
2. 순서 바꾸기
정수 리스트 num_list와 정수 n이 주어질 때, num_list를 n 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠 n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return하도록 solution 함수를 완성해주세요.
제한사항
- 2 ≤ num_list의 길이 ≤ 30
- 1 ≤ num_list의 원소 ≤ 9
- 1 ≤ n ≤ num_list의 길이
코드 작성
def solution(num_list, n):
lr = num_list[n:] + num_list[:n-1]
lr.append(num_list[n-1])
return lr
3. 왼쪽 오른쪽
문자열 리스트 str_list에는 “u”, “d”, “l”, “r” 네 개의 문자열이 여러 개 저장되어 있습니다. str_list에서 “l”과 “r” 중 먼저 나오는 문자열이 “l”이라면 해당 문자열을 기준으로 왼쪽에 있는 문자열들을 순서대로 담은 리스트를, 먼저 나오는 문자열이 “r”이라면 해당 문자열을 기준으로 오른쪽에 있는 문자열들을 순서대로 담은 리스트를 return하도록 solution 함수를 완성해주세요. “l”이나 “r”이 없다면 빈 리스트를 return합니다.
제한사항
- 1 ≤ str_list의 길이 ≤ 20
- str_list는 “u”, “d”, “l”, “r” 네 개의 문자열로 이루어져 있습니다.
코드 작성
def solution(str_list):
# l, r 모두 존재함
if ('l' not in str_list) and ('r' not in str_list):
return []
# l, r 모두 존재하지 않음
elif ('l' in str_list) and ('r' in str_list):
# l이 먼저오는 경우와 그렇지 않은 경우를 나눔
if str_list.index('l') < str_list.index('r'):
return str_list[:str_list.index('l')]
return str_list[str_list.index('r')+1:]
# l이 존재하는 경우와 그 외의 경우(r만 존재하는 경우)
elif 'l' in str_list:
return str_list[:str_list.index('l')]
return str_list[str_list.index('r')+1:]
4. n 번째 원소까지
정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 n 번째 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.
제한사항
- 2 ≤ num_list의 길이 ≤ 30
- 1 ≤ num_list의 원소 ≤ 9
- 1 ≤ n ≤ num_list의 길이
코드 작성
def solution(num_list, n):
return num_list[:n]
5. n개 간격의 원소들
정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 마지막 원소까지 n개 간격으로 저장되어있는 원소들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
제한사항
- 5 ≤ num_list의 길이 ≤ 20
- 1 ≤ num_list의 원소 ≤ 9
- 1 ≤ n ≤ 4
코드 작성
def solution(num_list, n):
return num_list[::n]
6. 문제 출처
👩🏻💻개인 공부 기록용 블로그입니다
오류나 틀린 부분이 있을 경우 댓글 혹은 메일로 따끔하게 지적해주시면 감사하겠습니다.
댓글남기기