자료구조 (Date Structures)

자료형 (Data Type)

문자열(str) "This is a string"
리스트 (list) [5,9,2,7]
사전 (dict) {'a' : 6, 'bc' : 4}

순서쌍(tuple), 집합(set), ...

  • 웬만한 것들은 Python 에서 이미 제공하는 데이터 타입으로 다 해결할 수 있을 것 같은데?
    • "자료구조" (data structures) 라는 것은, 도대체 왜 알아야 하는 거지?

예제 코드

  • 위의 경우와 같이 크기가 큰 리스트에서 최대값을 찾는 파이선의 내장 함수인 max 를 이용해서 파이선의 내장 데이터 타입인 list 로 부터 최대값을 찾아내는데는 갯수에 비례하는 만큼의 시간이 걸린다.
  • 이때 자료구조를 만들어서 사용하면 이와 같은 시간을 굉장히 줄일수 있다.

알고리즘(Algorithm)

알고리즘 이란?

  • 사전적 정의 : 어떤 문제를 해결하기 위한 절차, 방법, 명령어들의 집합
  • 프로그래밍 : 주어진 문제의 해결을 위한 자료구조와 연산 방법에 대한 선택

예시

  • 위와 같이 정렬되지 않은 데이터에서 원하는 값을 찾기 위해서는 전체 데이터를 모두 살펴 보아야 한다.
  • 이렇게 데이터를 정렬하면 원하는 값을 찾기 위한 시간이 크게 줄어든다
  • 해결하고자 하는 문제에 따라(응용 종류와 범위에 따라) 최적의 해법은 서로 다르다
    • 이 선택을 어떻게 해야 하느냐를 알기 위해 자료구조를 이해해야 함

과제 : 프로그래머스 테스트에 익숙해지기

코드

def solution(x):
    answer = x[0] + x[-1]
    
    return answer

실행결과

정확성  테스트
테스트 1 〉	통과 (0.00ms, 10.1MB)
테스트 2 〉	통과 (0.00ms, 10.3MB)
테스트 3 〉	통과 (0.00ms, 10.3MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0

profile
AI Tensorflow Python

0개의 댓글