✍️ 해당 포스팅은 https://www.youtube.com/watch?v=_hP21RzyqHA 강의자료를 참고하여 작성하였습니다.
1. 배열
배열은 메모리의 연속 공간에 값이 채워져 있는 형태의 구조입니다.
- 인덱스를 사용하여 값에 바로 접근할 수 있습니다.
- 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵습니다.
- (값을 삽입하거나 삭제하려면 해당 인덱스 주변에 있는 값을 이동시키는 과정이 필요합니다. )
- 배열 크기는 선언할 때 지정할 수 있으며, 한 번 선언하면 크기를 늘리거나 줄일 수 없습니다.
2. 리스트
리스트는 값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료입니다.
노드는 컴퓨터과학에서 값, 포인터를 쌍으로 갖는 기초 단위를 부르는 말입니다.
- 인덱스가 없으므로 값에 접근하려면 Head 포인터부터 순서대로 접근해야 합니다.
- 즉, 값에 접근하는 속도가 느립니다.
- 포인터로 연결되어있으므로 데이터를 삽입하거나 삭제하는 연산 속도가 빠릅니다.
- 선언할 때 크기를 별도로 지정하지 않아도 됩니다. 리스트의 크기는 정해져 있지 않으며, 크기가 변하기 쉬운 데이터를 다룰 때 적절합니다.
💡 파이썬에서는 배열과 리스트를 구분하지 않습니다.
일반적으로 컴퓨터 공학에서는 배열과 리스트가 명확하게 구분되는 자료구조이지만, 파이썬의 리스트는 리스트의 특장은 물론, 배열의 특징까지 모두 가지도록 구현되어 있습니다. (Index에 바로 접근 O) 이 때문에 파이썬의 구현 특징을 잘 활용하면 다른 언어보다 쉽게 정답 코드를 구현할 수 있습니다.
3. 실전문제 - 숫자의 합 구하기 (백준 11720)
풀이과정
1.주어진 숫자를 리스트 형태로 저장 → list(input())
2.해당 리스트를 index를 이용해 탐색하면서 각 자릿수 더하기
3. 슈도코드 작성 하기
n값 받기 ( 몇 개 숫자를 입력할 것인가 )
numbers 변수에 list 함수를 이용하여 숫자를 한 자리씩 나누어 받기
sum 변수 선언
for numbers 탐색 :
sum 변수에 numbers에 있는 각 자리수 더하기
sum 출력
N = int(input())
numbers = list(input()) #str형태로 입력되므로 나중에 int 형 변환을 해줘야 함
sum = 0
for i in numbers :
sum += int(i)
print(sum)
'STUDY > Algorithm' 카테고리의 다른 글
[Algorithm] DFS / BFS (0) | 2024.05.03 |
---|---|
[Algorithm] 그리디 알고리즘 (0) | 2024.04.30 |
[Algorithm] 알고리즘(코딩테스트) 스터디 계획 (0) | 2024.04.25 |
[Algorithm] 프로그래머스 - OX퀴즈 (0) | 2024.04.23 |
[Algorithm] 시간복잡도 (0) | 2024.04.15 |