본문 바로가기

코딩/coding test

[Python] 자료구조 - 배열과 리스트, 숫자의 합 구하기


배열과 리스트

배열과 리스트는 기본적인 자료구조 형태이므로,
두 자료구조의 특징과 동작 원리를 알아두어야할 필요가 있다.
비슷하지만 다른 두 자료구조를 비교해보고,
이것을 이용한 문제를 풀며 함께 탐구해보자.



  • 배열

- 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조

- 배열의 값은 인덱스를 통해 참조, 선언한 자료형의 값만 저장

 

  • 배열의 특징

- 인덱스를 사용하여 값에 바로 접근할 수 있음 #장점

- 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다, #단점

(값을 삽입하거나 삭제하려면 해당 인덱스 주변의 값을 이동시켜야 함)

- 배열의 크기는 선언할 때 지정할 수 있으며, 한번 선언하면 크기를 늘리거나 줄일 수 x #단점

 

  • 리스트

- 값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료구조

 

  • 리스트의 특징

- 인덱스가 없으므로 값에 접근하려면 Head 포인터부터 순서대로 접근해야 한다. 다시 말해 값에 접근하는 속도가 느리다.  #단점

- 포인터로 연결되어 있어 데이터를 삽입하거나 삭제하는 연산 속도가 빠르다. #장점

- 선언할 때 크기를 별도로 지정x, 리스트의 크기는 정해져 있지 않고 크기가 변하기 쉬운 데이터를 다룰 때 적절하다. #장점

- 배열보다 구조가 복잡 (포인터 저장 공간 필요) #단점

 

 

* 파이썬에서는 리스트와 배열의 특징 모두 가지고 있어 다른 언어보다 더 쉽게 정답 코드를 구현할 수 있는 장점이 있다.

 

 

  1. 숫자의 합 구하기

: 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