코딩 테스트에서 자주 활용하는 리스트 기법

HKoiKoi·2026년 9월 17일

코딩 테스트

목록 보기
2/16
post-thumbnail

자주 활용하는 리스트 기법

파이썬에서 배열 자료구조를 구현할 때는 리스트를 활용한다.

리스트에 데이터 추가

append() 메서드

맨 끝에 데이터를 추가하는 메서드이다.

test_list = [1, 2, 3]
test_list.append(4)
print(test_list)  # [1, 2, 3, 4]

+ 연산자

append()와 비슷하게 맨 끝에 다른 리스트의 데이터를 추가할 수 있다.

test_list = [1, 2, 3]
test_list = test_list + [4, 5]
print(test_list)  # [1, 2, 3, 4, 5]

insert() 메서드

append()와는 다르게 원하는 위치에 데이터를 삽입할 수 있다.
insert() 메서드의 첫 번째 인수에 데이터를 삽입할 위치를, 두 번째 인수에 삽입할 데이터를 넣는다.
배열의 처음이나 중간에 데이터를 삽입하는 경우 시간 복잡도가 O(N)O(N)이 되므로 사용에 주의해야 한다.

test_list = [1, 2, 3]
test_list.insert(1, 4)
print(test_list)  # [1, 4, 2, 3]

리스트에서 데이터 삭제

pop() 메서드

pop() 메서드는 삭제할 인덱스를 인수로 받아 삭제하고 삭제한 데이터의 값을 반환한다.
배열의 처음이나 중간에 데이터 삭제할 경우 시간 복잡도가 O(N)O(N)이 되므로 사용에 주의해야 한다.

test_list = [1, 2, 3, 4, 5]
popped_data = test_list.pop(2)
print(test_list)  # [1, 2, 4, 5]
print(f"삭제된 데이터: {popped_data}")  # 삭제된 데이터: 3

remove() 메서드

pop() 메서드와 달리 특정 인덱스가 아니라 특정 데이터 자체를 삭제한다.
remove() 메서드는 인수로 받은 값이 처음 등장하는 위치의 데이터를 삭제한다.
배열의 처음이나 중간에 데이터 삭제할 경우 시간 복잡도가 O(N)O(N)이 되므로 사용에 주의해야 한다.

test_list = [1, 2, 3, 3, 4, 5]
test_list.remove(3)
print(test_list)  # [1, 2, 3, 4, 5]

리스트 컴프리헨션으로 데이터에 특정 연산 적용

리스트 컴프리헨션은 연산ㅇ니 끝난 리스트를 반환만 하고 연산 대상 리스트를 바꾸진 않는다.

리스트에 제곱 연산 적용 예시

numbers = [1, 2, 3, 4, 5]
squares = [x ** 2 for x in numbers]
print(numbers) # [1, 2, 3, 4, 5]
print(squares) # [1, 4, 9, 16, 25]

리스트의 데이터에 2배 연산 적용 예시

numbers = [1, 2, 3, 4, 5]
times = [x * 2 for x in numbers]
print(numbers)  # [1, 2, 3, 4, 5]
print(times)  # [2, 4, 6, 8, 10]

코딩 테스트에서 활용하면 유용한 메서드

len() 메서드

len() 메서드는 리스트의 전체 데이터 개수를 반환하는 함수이다.

names = ["kim", "nam", "jeon", "park", "lee", "choi", "ham", "kang", "ko", "shin", "yoo", "ham", "cho"]
print(len(names))  # 13

index() 메서드

특정 데이터가 처음 등장한 인덱스를 반환하는 메서드이다.
해당 데이터가 없다면 -1 반환한다.

names = ["kim", "nam", "jeon", "park", "lee", "choi", "ham", "kang", "ko", "shin", "yoo", "ham", "cho"]
print(names.index("ham"))  # 6

sort() 메서드

sort() 메서드는 사용자가 정한 기준에 따라 리스트 데이터를 정렬한다.
아무런 인수도 전달하지 않으면 오름차순으로 데이터를 정렬한다. reverse=True 인수 넣으면 내림차순으로 정리한다.

sort() 메서드는 정렬된 값을 반환하지 않고 원본 리스트를 정렬한다.

names = ["kim", "nam", "jeon", "park", "lee", "choi", "ham", "kang", "ko", "shin", "yoo", "ham", "cho"]
names.sort()
print(names)  # ['cho', 'choi', 'ham', 'ham', 'jeon', 'kang', 'kim', 'ko', 'lee', 'nam', 'park', 'shin', 'yoo']
names = ["kim", "nam", "jeon", "park", "lee", "choi", "ham", "kang", "ko", "shin", "yoo", "ham", "cho"]
names.sort(reverse=True)
print(names)  # ['yoo', 'shin', 'park', 'nam', 'lee', 'ko', 'kim', 'kang', 'jeon', 'ham', 'ham', 'choi', 'cho']

count() 메서드

count() 메서드는 특정 데이터 개수를 반환한다.

names = ["kim", "nam", "jeon", "park", "lee", "choi", "ham", "kang", "ko", "shin", "yoo", "ham", "cho"]
print(names.count("ham"))  # 2

0개의 댓글