def solution(numbers, direction):
if direction == "right":
numbers.insert(0, numbers[-1]) # 원하는 위치 앞에, 추가할 값을 삽입
numbers.pop() # pop 함수는 ()에 아무 값도 넣지 않으면 마지막 인덱스를 삭제
return numbers
else:
numbers.append(numbers[0]) # 맨 마지막 위치로 첫 번째 숫자가 추가됨
numbers.pop(0) # 첫 번째 값이 삭제
return numbers
🤔 문제 풀이
- if direction == "right":
- direction이 "right"일 때,
- numbers.insert(0, numbers[-1]) # 원하는 위치 앞에, 추가할 값을 삽입
- insert() 함수는 원하는 위치 앞에 number[-1]의 값을 삽입해주는 함수예요
- 그래서, right 방향으로 갈 거니까, numbers에 끝자리에 있는 값을 첫 번째로 넣어줄게요
- numbers.pop() # pop 함수는 ()에 아무 값도 넣지 않으면 마지막 인덱스를 삭제
- 그리고, pop() 함수를 써서 원래 numbers의 맨 뒤에 있었던 값을 삭제해줄게요
- return numbers
- 그러고 리턴해주면 right 조건은 완성이에요!
- else:
- direction이 "left"일 때
- numbers.append(numbers[0]) # 맨 마지막 위치로 첫 번째 숫자가 추가됨
- 먼저, numbers에 0번째 값을 numbers의 맨 뒷자리에 추가를 해줘요
- numbers.pop(0) # 첫 번째 값이 삭제
- 그러고, numbers의 첫 번째 값을 삭제해주고
- return numbers
- 리턴을 해주면 문제 해결입니다!
list와 함께 쓰이는 함수 알아가기
추가하는 함수들
함수 | 설명 | 예시 |
.append() | 덧붙인다는 뜻 ()안에 값을 입력하면 새로운 요소를 맨 끝에 값 그대로 추가 |
>>> nums = [1, 2, 3] >>> nums.append(4) # [1, 2, 3, 4] >>> nums.append([5, 6]) # [1, 2, 3, 4, [5, 6]] |
.extend() | iterable한 자료형을 끝에 하나씩 추가 종류 : string, list, tuple, range(), set, dict 🔥 iterable형이 아니면 오류남 |
>>> nums = [1, 2, 3] >>> nums.extend([4, 5]) # [1, 2, 3, 4, 5] >>> a = [10] >>> nums.extend(a) # [1, 2, 3, 4, 5, 10] |
.insert(위치, 값) | 원하는 위치 앞에 추가할 값을 삽입 위치 : 인덱스 숫자를 입력(음수면 배열 끝을 기준으로 함) 값 : 객체로 추가됨. iterable형이더라도 객체로 추가됨. 🔥 위치에 len()도 가능 |
>>> nums = [1, 2, 3] >>> nums.insert(0, [10, 20]) # [[10, 20], 1, 2, 3] >>> nums.insert(-1, 100) >>> print(nums) # [[10, 20], 1, 2, 100, 3] 🔥 >>> nums = [1, 2, 3] >>> nums.insert(len(nums), 100) # [1, 2, 3, 100] |
삭제하는 함수들
함수 | 설명 | 예시 |
.remove() | 리스트 속 삭제할 특정 값을 입력하여 제거 🔥 동일한 값이 여러 개면, 첫 번째로 나오는 값을 삭제 |
>>> 수능 = ["국어", "수학", "영어"] >>> 수능.remove("수학") >>> print(수능) # ["국어", "영어"] 🔥 >>> num = [0, 0, 1, 2] >>> num.remove(0) >>> print(num) # [0, 1, 2] |
.pop() | 리스트 속, 삭제할 index 번호를 사용하여 값 삭제 () 안에 어떠한 숫자도 기입하지 않으면, 마지막 숫자 삭제 del과 비슷하지만, pop은 삭제한 값을 반환할 수 있음 |
>>> a = [1, 2, 1, 3, 4, 5, 1] >>>removed = a.pop(1) >>>print(a) # [1, 1, 3, 4, 5, 1] >>> print(removed) # 2 >>> print(a[0]) # 1 |
del list[index] | 리스트 속, 삭제할 index 번호를 사용하여 값 삭제 🔥[:]을 통해 슬라이싱도 가능 |
>>> 수능 = ["국어", "수학", "영어"] >>> del 수능[1] >>> print(수능) # ["국어", "영어"] 🔥 >>> 수능 = ["국어", "수학", "영어"] >>> 수능[0:1] >>> print(수능) # ["영어"] |
.clear() | 리스트의 모든 요소를 제거 | >>> 수능 = ["국어", "수학", "영어"] >>> 수능.clear() >>> print(수능) # [] |
'문제 풀기 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 숫자 찾기(+실패 흔적들, .index()) (0) | 2024.12.27 |
---|---|
[프로그래머스] 369게임 (if, in) (0) | 2024.12.27 |
[프로그래머스] 약수 구하기 range(), % (0) | 2024.12.24 |
[프로그래머스] n의 배수 고르기 % (0) | 2024.12.24 |
[프로그래머스] 가장 큰 수 찾기 +실패 흔적들 / .index() , sorted() (0) | 2024.12.24 |