배열과 리스트
배열과 리스트는 기본적인 자료구조 형태이므로,
두 자료구조의 특징과 동작 원리를 알아두어야할 필요가 있다.
비슷하지만 다른 두 자료구조를 비교해보고,
이것을 이용한 문제를 풀며 함께 탐구해보자.
- 배열
- 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조
- 배열의 값은 인덱스를 통해 참조, 선언한 자료형의 값만 저장
- 배열의 특징
- 인덱스를 사용하여 값에 바로 접근할 수 있음 #장점
- 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다, #단점
(값을 삽입하거나 삭제하려면 해당 인덱스 주변의 값을 이동시켜야 함)
- 배열의 크기는 선언할 때 지정할 수 있으며, 한번 선언하면 크기를 늘리거나 줄일 수 x #단점
- 리스트
- 값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료구조
- 리스트의 특징
- 인덱스가 없으므로 값에 접근하려면 Head 포인터부터 순서대로 접근해야 한다. 다시 말해 값에 접근하는 속도가 느리다. #단점
- 포인터로 연결되어 있어 데이터를 삽입하거나 삭제하는 연산 속도가 빠르다. #장점
- 선언할 때 크기를 별도로 지정x, 리스트의 크기는 정해져 있지 않고 크기가 변하기 쉬운 데이터를 다룰 때 적절하다. #장점
- 배열보다 구조가 복잡 (포인터 저장 공간 필요) #단점
* 파이썬에서는 리스트와 배열의 특징 모두 가지고 있어 다른 언어보다 더 쉽게 정답 코드를 구현할 수 있는 장점이 있다.
- 숫자의 합 구하기
: N개의 숫자가 공백없이 써 있다. 이 숫자를 모두 합해 출력하는 프로그램을 작성하시오.
입력
- 1번째 줄에 숫자의 개수 N(1 =<N <=100), 2번째 줄에 숫자 N개가 공백 없이 주어진다.
출력
- 입력으로 주어진 숫자 N개의 합을 출력한다.
예제 입력 1 | 예제 출력 1 |
1 # 숫자의 개수 1 # 공백 없이 주어진 N개의 숫자 |
1 |
예제 입력 2 | 예제 출력 2 |
5 54321 |
15 |
예제 입력 3 | 예제 출력 3 |
25 700000000000000000000 |
7 |
예제 입력 4 | 예제 출력 4 |
11 10987654321 |
46 |
- 문제 분석하기
파이썬의 리스트 자료구조를 통해 해결할 수 있다.
리스트로 저장한 뒤, index로 탐색하며 각 자릿수의 값을 더하면 됨!!!
자릿수를 더할 때는 정수형으로 변환해 더한다.
- 슈도코드
n값 받기
numbers 변수에 list 함수를 이용하여 숫자를 한 자리씩 나누어 받기
sum 변수 선언
for numbers 탐색:
sum변수에 numbers에 있는 각 자릿수를 가져와 더하기
sum 출력
- 코드 구현하기
n = input()
numbers = list(input())
sum = 0
for i in numbers:
sum = sum + int(i)
print(sum)
'코딩 > coding test' 카테고리의 다른 글
[JAVA] 백준 15552번: 빠른 A+B (0) | 2022.05.22 |
---|---|
[JAVA] 백준 8393번: 합 (0) | 2022.05.22 |
[JAVA] 백준 10950번: A+B - 3 (0) | 2022.05.22 |
[JAVA] 백준 2739번: 구구단 (0) | 2022.05.22 |
[JAVA] 백준 2480번 : 주사위 세개 (0) | 2022.05.22 |