[Algorithm] 코딩테스트 공부 python - 2

THOVY·2022년 8월 29일
0

ALGORITHM

목록 보기
2/5

시작👊

배열과 리스트

배열과 리스트는 비슷한 저도 많지만 다른 점도 많습ㄴ디ㅏ. 파이썬에서는 리스트가 배열의 특성도 함께 내포하고 있어 크게 구분하여 사용하지는 않지만 두 자료구조의 특징과 동작 원리는 이해하고 있는 것이 좋습니다. 그럼 무엇이 비슷하고 무엇이 다른 건지 알아볼까요??

네~ 선장님!

배열

배열은 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조입니다. 배열의 값은 인덱스를 통해 참조할 수 있으며, 선언한 자료형의 값만 저장할 수 있습니다.

  • 인덱스를 사용하여 값에 바로 접근 할 수 있다.
  • 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다. 값을 삽입하거나 삭제하려면 해당 인덱스 주변에 있는 값을 이동시키는 과정이 필요하다.
  • 배열의 크기는 선언할 때 지정할 수 있으며, 한 번 선언하면 크기를 늘리거나 줄일 수 없다.
  • 구조가 간단하므로 코딩 테스트에서 많이 사용한다.

한 번 선언하면 크기를 늘리거나 줄일 수 없다!!

리스트

리스트는 값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료구조 입니다.

  • 인덱스가 없으므로 값에 접근하려면 head 포인터부터 순서대로 접근해야한다. 즉, 접근 속도가 느리다.
  • 포인터로 연결되어 있으므로 데이터를 삽입하거나 삭제할 때는 속도가 빠르다.
  • 선언할 때 크기를 별도로 지정하지 않아도 된다.
  • 포인터를 저장할 공간이 필요하므로 배열보다 구조가 복잡하다.

파이썬에서는 배열과 리스트를 구분하지 않는다!
일반적으로 컴공에서는 배열과 리스트가 명확하게 구분되는 자료구조지만, 파이썬의 list 는 리스트의 특징과 함깨 배열의 특징까지 모두 가지고 있다. 그래서 코딩테스트에서 이 특징을 이용해 다른 언어보다 조금 더 쉽게 정답 코드를 구현할 수 있습니다.

코테에 최적화된 언어같습니다.

👨‍💻 문제

백준 11720

너무 쉽다.

sudo 코드를 작성하는 버릇을 들이래.

number 리스트로 값 받기
리스트로 받은 number 값을 하나씩 for 문으로 빼서 더하기

아 책보니까 이렇게 적는 거 아니네 좀 더 상세하게 적어야 되는 구나
헣허허허헣

아무튼 어렵지 않다.

n = input()
numbers = list(input())

sum = 0

for i in numbers:
    sum += int(i)
    
print(sum)

n 값을 안 받으니까 첫번째 입력값이 numbers 로 들어감.
n 쓸모도 없는데 왜 넣음. 함정인가. 다른 언어에서는 사용해야하나.
아! 다른 언어에서는 리스트의 값을 지정해줘야하니까 그런가
엥? 아니지 배열이 아니면 리스트로 하면 늘리기 쉬우니까 굳이 안 지정해줘도 될 거 같은데, 그러면 순서대로 빼내기도 쉽고.
흐음.

번외

파이썬에서의 형 변환

boolean : int, float 를 변환할 때는 데이터가 "0인지 아닌지"에 따라 true, false 를 반환하고,
chrstr 을 변환할 때는 데이터가 "비어있는지 아닌지" 에 따라 true, false 를 반환한다.

profile
BEAT A SHOTGUN

0개의 댓글