728x90
[프로그래머스][Python][Lv0] 코딩 기초 트레이닝 (1)
아직 어떤 상황에 어떤 함수를 써야할 지 익숙하지 않아서 헷갈리는 부분 연습 겸 정리
https://school.programmers.co.kr/learn/challenges/training?order=acceptance_desc&languages=python3
1. 마지막 두 원소
정수 리스트 num_list가 주어질 때, 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하여 return하도록 solution 함수를 완성해주세요.
🔎 리스트에서 마지막 원소와 그 전 원소를 가져오는 법
num_list[-1]
num_list[-2]
전체 코드
def solution(num_list):
if num_list[-1] > num_list[-2]:
a = num_list[-1] - num_list[-2]
num_list.append(a)
return num_list
else:
a = num_list[-1] * 2
num_list.append(a)
return num_list
2. 배열 만들기 1
정수 배열 arr와 자연수 k가 주어집니다.
만약 k가 홀수라면 arr의 모든 원소에 k를 곱하고, k가 짝수라면 arr의 모든 원소에 k를 더합니다.
이러한 변환을 마친 후의 arr를 return 하는 solution 함수를 완성해 주세요.
🔎 리스트 컴프리헨션 (list comprehension)
리스트를 쉽게, 짧게 한줄로 만들 수 있는 파이썬의 문법
[ ( 변수를 활용한 값 ) for ( 사용할 변수 이름 ) in ( 순회할 수 있는 값 )]
전체 코드
def solution(arr, k):
if k % 2 != 0:
arr = [arr[i] * k for i in range(len(arr))]
return arr
else:
arr = [arr[i] + k for i in range(len(arr))]
return arr
3. 접미사인지 확인하기
어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.
문자열 my_string과 is_suffix가 주어질 때, is_suffix가 my_string 의 접미사라면 1을,
아니면 0을 return 하는 solution 함수를 작성해 주세요.
위와 동일하게 리스트 컴프리헨션을 사용해서 my_string의 접미사로 이루어진 리스트 생성
in 함수를 사용하여서 is_suffix가 리스트에 포함되어있는지 확인
전체 코드
def solution(my_string, is_suffix):
a = [my_string[i:] for i in range(len(my_string))]
print(a)
if is_suffix in a:
return 1
return 0
4. 꼬리 문자열
문자열들이 담긴 리스트가 주어졌을 때, 모든 문자열들을 순서대로 합친 문자열을 꼬리 문자열이라고 합니다. 꼬리 문자열을 만들 때 특정 문자열을 포함한 문자열은 제외시키려고 합니다.
예를 들어 문자열 리스트 ["abc", "def", "ghi"]가 있고 문자열 "ef"를 포함한 문자열은 제외하고
꼬리 문자열을 만들면 "abcghi"가 됩니다.
문자열 리스트 str_list와 제외하려는 문자열 ex가 주어질 때, str_list에서 ex를 포함한 문자열을 제외하고 만든 꼬리 문자열을 return하도록 solution 함수를 완성해주세요.
🔎join()
리스트의 요소를 문자열로 만드는 함수
매개변수로 들어온 리스트에있는 요소 하나하나를 합쳐서 하나의 문자열로 바꾸어 반환
''.join(list)
전체 코드
빈 리스트를 생성한 후 str_list의 요소에 ex가 포함되어있지 않은 경우만 리스트로 생성한 후,
join을 통해 문자열로 바꾼다.
def solution(str_list, ex):
a = []
for i in str_list:
if ex not in i:
a.append(i)
return ''.join(a)
위 코드를 리스트 컴프리헨션으로 구성하면 다음과 같음
def solution(str_list, ex):
a = [ i for i in str_list if ex not in i]
return ''.join(a)
5. rny_string
'm'과 "rn"이 모양이 비슷하게 생긴 점을 활용해 문자열에 장난을 하려고 합니다. 문자열
rny_string이 주어질 때, rny_string의 모든 'm'을 "rn"으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.
🔎string.replace()
특정 단어를 다른 단어로 대체
아래 예시는 문자열에 포함된 a를 b로 대체한다.
string.replace('a','b')
+) string.split()
특정 구분자를 기준으로 문자열을 분리하여 리스트로 반환
전체 코드
def solution(rny_string):
for i in rny_string:
if i == 'm':
rny_string = rny_string.replace('m','rn')
return rny_string
반응형
'🧾 Codetest > 프로그래머스' 카테고리의 다른 글
[프로그래머스][Python][Lv0] 코딩 기초 트레이닝 (3) (1) | 2023.08.28 |
---|---|
[프로그래머스][Python][Lv0] 코딩 기초 트레이닝 (2) (0) | 2023.08.20 |
[SQL] 코딩 테스트 연습 (3) (0) | 2023.06.26 |
[SQL] 코딩 테스트 연습 (2) (0) | 2023.06.24 |
[SQL] 코딩 테스트 연습 (1) (0) | 2023.06.23 |