프로그래머스 Lv.0 문제를 풀다가 list의 메소드에 대해 정리를 해야겠다는 생각이 들었다.
아무래도 Python을 오랜만에 하다 보니, 간단히 메소드를 쓰면 되는 문제인데도 자꾸 for문을 돌린다던지 하는 코드를 쓰게 되어 앞으로 접하게 되는 list의 메소드가 나올때마다 여기에 업로드 하고자 한다.
📄 사용한 문제
프로그래머스
코딩테스트 입문(Lv.0)
문제 제목 : 중복된 숫자 개수
✅ 메소드 설명
주어진 리스트에서 매개변수의 값과 같은 요소의 개수를 찾는 메소드이다.
🍏 예시 코드
a = [1, 1, 2, 5, 3]
a.count(1) # 2
# 프로그래머스 Lv.0 '중복된 숫자 개수'
def solution(array, n):
return array.count(n)
📄 사용한 문제
프로그래머스
코딩테스트 입문(Lv.0)
문제 제목 : 배열 원소의 길이
✅ 메소드 설명
리스트에 매개변수의 값을 마지막 요소로 추가하는 메소드이다.
🍏 예시 코드
a = [1, 5, 3]
a.count(1) # [1, 5, 3, 1]
a.count([1, 2]) # [1, 5, 3, 1, [1, 2]]
# 프로그래머스 Lv.0 '배열 원소의 길이'
def solution(strlist):
answer = []
for val in strlist:
answer.append(len(val))
return answer
📄 사용한 문제
--
✅ 메소드 설명
형식: insert(idx, item)
리스트의 idx번째 위치에 item을 추가하는 메소드이다.
🍏 예시 코드
a = [1, 5, 3]
a.insert(0, 2) # [2, 1, 5, 3]
a.insert(2, 2) # [2, 1, 2, 5, 3]
📄 사용한 문제
--
✅ 메소드 설명
형식: extend(iterable)
매개변수로 전달된 iterable의 모든 요소를 리스트에 추가하는 메소드이다. 이때 매개변수는 iterable이기 때문에 list, tuple 모두 가능하다.
🍏 예시 코드
a = [1, 5]
a.extend([1, 2, 3]) # [1, 5, 1, 2, 3]
a.extend((4, 5, 6)) # [1, 5, 1, 2, 3, 4, 5, 6]
📄 사용한 문제
프로그래머스
코딩테스트 입문(Lv.0)
문제 제목 : 모음 제거
✅ 설명
형식: {val} in {list}
list에 val 값이 존재하는지 아닌지를 판별해준다. 존재하면 True, 아니면 False를 반환한다.
list뿐만 아니라 tuple, string에도 사용 가능하다.
🍏 예시 코드
1 in [1, 5, 3] # True
1 not in [1, 5, 3] # False
1 in (1, 5, 3) # True
'1' in '1st' # True
⚠️주의: 1 in '1st'와 같은 코드는 에러를 발생시킨다. in <string>은 operand(피연산자)로 string만 가능하기 때문이다.
# 프로그래머스 Lv.0 '모음 제거'
def solution(my_string):
answer = ''
for i in my_string:
if i not in ['a', 'e', 'i', 'o', 'u']:
answer += i
return answer
📄 사용한 문제
프로그래머스
코딩테스트 입문(Lv.0)
문제 제목 : 중앙값 구하기
✅ 설명
형식: {list}.sort()
리스트를 정렬된 상태로 변경한다.
매개변수 안에 reverse=True를 두어 내림차순 정렬을 하거나, key를 넣어 특정한 정렬 기준을 둘 수 있다.
⚠️주의: 정렬된 리스트를 새로 생성하는 sorted()와의 차이를 주의하자.
🍏 예시 코드
a = [1, 7, 2, 9, 0]
a.sort() # a = [0, 1, 2, 7, 9]
a.sort(reverse=True) # a = [9, 7, 2, 1, 0]
a = ['aa', 'bye', 'niceday', 'hi', 'nice']
a.sort() # a = ['aa', 'bye', 'hi', 'nice', 'niceday']
a.sort(key=len) # a = ['aa', 'hi', 'bye', 'nice', 'niceday']
a.sort(key=lambda val : val[1]) # a = ['aa', 'hi', 'nice', 'niceday', 'bye']
# 프로그래머스 Lv.0 '중앙값 구하기'
def solution(array):
array.sort()
return array[len(array) // 2]
📄 사용한 문제
프로그래머스
코딩테스트 입문(Lv.0)
문제 제목 : 중앙값 구하기
✅ 설명
형식: sorted({list})
리스트를 정렬한 새로운 리스트를 생성하여 반환한다.
매개변수 안에 reverse=True를 두어 내림차순 정렬을 하거나, key를 넣어 특정한 정렬 기준을 둘 수 있다.
⚠️주의: 리스트 자체를 정렬하는 sort()와의 차이를 주의하자.
🍏 예시 코드
a = [1, 7, 2, 9, 0]
b = sorted(a) # b = [0, 1, 2, 7, 9]
b = sorted(a, reverse=True) # b = [9, 7, 2, 1, 0]
a = ['aa', 'bye', 'niceday', 'hi', 'nice']
b = sorted(a) # b = ['aa', 'bye', 'hi', 'nice', 'niceday']
b = sorted(a, key=len) # b = ['aa', 'hi', 'bye', 'nice', 'niceday']
b = sorted(a, key=lambda val : val[1]) # b = ['aa', 'hi', 'nice', 'niceday', 'bye']
# 프로그래머스 Lv.0 '중앙값 구하기'
def solution(array):
return sorted(array)[len(array) // 2]
📄 사용한 문제
프로그래머스
코딩테스트 입문(Lv.0)
문제 제목 : 배열 뒤집기
✅ 설명
형식: {list}.reverse()
리스트 요소의 순서를 뒤집은 상태로 변경한다.
따지고 보면 '역정렬'은 아니니 정렬이라 하기는 어렵고, 현재 순서를 거꾸로 뒤집어 주는 메소드이다.
🍏 예시 코드
a = [1, 7, 2, 9, 0]
a.reverse() # a = [0, 9, 2, 7, 1]
b = a[::-1] # b = [0, 9, 2, 7, 1]
위와 같이 {list}[::-1]을 통해 순서를 뒤집을 수도 있다. 인덱싱을 이용하는 방법은 list 대신 string에도 적용 가능하다.
# 프로그래머스 Lv.0 '배열 뒤집기'
def solution(num_list):
num_list.reverse()
return num_list
# 인덱싱 이용 풀이
def solution(num_list):
return num_list[::-1]
📄 사용한 문제
프로그래머스
코딩테스트 입문(Lv.0)
문제 제목 : 머쓱이보다 키 큰 사람
관련 블로그 포스팅: [프로그래머스/Python] 머쓱이보다 키 큰 사람
✅ 설명
형식: {list}.index({val})
list에서 첫 번째 val 요소 인덱스를 반환한다.
🍏 예시 코드
a = [1, 7, 2, 9, 0]
a.index(7 # 1
# 프로그래머스 Lv.0 '머쓱이보다 키 큰 사람'
def solution(sides):
array.append(height)
array.sort(reverse=True)
return array.index(height)
📄 사용한 문제
프로그래머스
코딩테스트 입문(Lv.0)
문제 제목 : 삼각형의 완성조건 (1)
✅ 설명
형식: max({list}), min({list})
list의 요소 중 가장 큰 값이나 작은 값을 반환해주는 함수이다.
🍏 예시 코드
a = [1, 7, 2, 9, 0]
max(a) # 9
min(a) # 0
# 프로그래머스 Lv.0 '삼각형의 완성조건 (1)'
def solution(sides):
return 1 if max(sides) < (sum(sides) - max(sides)) else 2
📄 사용한 문제
프로그래머스
코딩테스트 입문(Lv.0)
문제 제목 : 삼각형의 완성조건 (1)
✅ 설명
형식: sum({list})
list 요소들의 총합을 반환한다.
🍏 예시 코드
a = [1, 7, 2, 9, 0]
sum(a) # 19
# 프로그래머스 Lv.0 '삼각형의 완성조건 (1)'
def solution(sides):
return 1 if max(sides) < (sum(sides) - max(sides)) else 2