♻️배열과 리스트

dev_itzel_02✨·2025년 4월 15일

♻️Algorithm

목록 보기
12/12
post-thumbnail

파이썬에서의 리스트 → 배열의 특성도 내포하여 크게 구분 X

자료 구조에서의 리스트 → 특징과 동작 원리 이해 필요

[배열]

(in 자료 구조)

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

  • 값을 인덱스를 통해 참조 가능

[특징]

  • 인덱스로 값에 바로 접근 가능 → 빠름
  • 값의 삽입/삭제가 어려움
    • 연속적이므로 해당 인덱스 주변에 있는 값을 이동시키는 과정이 필요 → 느림
  • 배열 크기는 선언할 때 지정
    • 한 번 선언 시, 크기 늘리거나 줄일 수 없음

[리스트]

(in 자료구조)

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

[특징]

  • 인덱스가 없어 값에 접근하려면 Head 포인터부터 순서대로 접근해야 함 → 느림
  • 포인터로 연결되어 삽입/삭제 빠름
  • 선언 시, 크기 별도 지정 X
    • 크기 변경이 자유로움

파이썬에서는 배열과 리스트를 구분하지 않는다 !

→ 파이썬의 리스트 = 리스트 특징 + 배열 특징

  • 인덱스로 바로 접근
  • 가변적인 크기

[문제 풀이]

문제 1 - 숫자의 합 구하기
시간 제한 : 1초 | 난이도: 브론즈 IV | 백준 11720번

N개의 숫자가 공백 없이 써 있다. 이 숫자를 모두 합해 출력하는 프로그램을 작성하시오.

[입력]

1번째 줄에 숫자의 개수 N(1 ≤ N ≤ 100), 2번째 줄에 숫자 N개가 공백 없이 주어진다.

[출력]

입력으로 주어진 숫자 N개의 합을 출력한다.

[예제 입력 1]

1 # 숫자의 개수

1 # 공백 없이 주어진 N개의 숫자

[예제 출력 1]

1


[예제 입력 2]

5

54321

[예제 출력 2]

15


[예제 입력 3]

6

700000

[예제 출력 3]

7

[1단계 - 문제 분석]

파이썬의 리스트 자료 구조를 통해 쉽게 해결 가능

  • 주어진 숫자를 리스트 형태로 저장 → list(input())
  • index를 통해 탐색하며 각 자릿수의 값 더하기
    • 더할 때는 정수형으로 변환 필요
    • 리스트 내의 값은 str 형태

[2단계 - 슈도 코드 작성]

n값 받기
numbers 변수에 list 함수를 이용하여 숫자를 한 자리씩 나누어 받기
sum 변수 선언

for numbers 탐색:
		sum 변수에 numbers에 있는 각 자릿수를 가져와 더하기
		
sum 출력

[내가 푼 답안]

num = input()
numbers = list(input())
sum = 0

for n in numbers:
    sum += int(n)

print(sum)

[파이썬 형 변환]

  • int형 → int(data)
  • float형 → float(data)
  • str형 → str(data)
  • chr형 → chr(data)
  • bool형 → bool(data)

bool 형 반환의 경우 int, float에서 변환할 때는 데이터가 0인지 아닌지, chrstr에서 변환할 때는 값의 유무에 따라 True, False를 반환한다.

profile
🐜👣steadiness🐜👣

0개의 댓글