민규의 개발블로그
Python으로 코테 공부 하기 기본 문법 - 자료형 본문
일주일 전 쯤 우테코 코딩테스트를 통해 생애 첫 코테를 경험하고 알고리즘 공부를 시작해야겠다 생각이 들어
서점에가 책을 구입했다.
인터넷에서 조언을 구해 "이것이 코딩 테스트다 with 파이썬"이란 책을 구매 했는데 JS말고 파이썬으로 코테 알고리즘 공부를 할 생각이다!
JS 문법만 공부하던 내가 파이썬을 공부하며 JS와 다른 내 스스로 몰랐던 파이썬 문법을 정리해 끄적일 것이다!
자료형
파이썬에서 역시 이와 같은 에러가 있다.
원하는 결과를 얻고 싶으면 round( ) 함수를 이용하면 된다.
round( ) 함수를 호출할 때는 인자를 넣는데 첫 번째 인자는 실수형 데이터이고, 두 번째 인자는 반올림하고자 하는 위치 -1 이다. 두번째 인자 없이 인자를 하나만 넣을 때는 소수점 첫째 자리에서 반올림한다.
ex)
수 자료형의 연산
파이썬에서 몫을 구할 때에는 몫 연산자(//)를 이용한다.
리스트 자료형
나는 쉽게 js의 배열이라 이해했다. 파이썬의 리스트 자료형은 배열 기능을 포함하고 있으며, 내부적으로 연결 리스트 자료구조를 채택하고 있어서 append( ), remove( ) 등의 메서드를 지원한다.
파이썬의 빈 리스트 선언 방법은 아래 2가지가 있고 크기가 N인 1차원 리스트를 초기화 할땐 다음 방식으로 하면 편리하다.
리스트의 인덱싱과 슬라이싱
파이썬은 인덱스값에 양의 정수와 음의 정수 모두 사용할 수 있으며, 음의 정수를 넣으면 원소를 거꾸로 탐색한다.
또 리스트에서 연속적인 위치를 갖는 원소들을 가져와야 할 때는 슬라이싱을 이용할 수 있다.
이때는 대괄호 안에 콜론(:)을 넣어서 시작 인덱스와 (끝 인덱스 -1)을 설정할 수 있다.
리스트 컴프리헨션
나는 이부분이 조금 낯설었는데 리스트 컴프리헨션은 리스트를 초기화하는 방법 중 하나이다.
대괄호안에 조건문과 반복문을 넣는 방식으로 리스트를 초기화 할 수 있다.
i for i in range(n) << 이 i는 n까지 반복한다 같은 뜻으로 이해했다.
리스트 컴프리헨션으로 2차원 리스트를 초기화
여기서 언더바(_)는 파이썬 자료구조/알고리즘에서 반복을 수행하되 반복을 위한 변수의 값을 무시하고자 할 때 사용한다.
리스트 관련 메서드
JS에서는 remove 함수를 사용할 경우 그 값만 사라지고 자리엔 undefined가 남았는데 파이썬은 그렇지 않다.
내림차순 정렬 같은 경우도 sort( ) 함수안에 조건식이 아닌 reverse = True로 처리하는점이 다르단 걸 느꼈다.
또 특정 인덱스에 insert(a,b) 함수로 a번째에 b를 추가하고, 특정 값인 데이터 개수를 셀 때는 a.count(value)로 세는게 JS랑 달라서 신선하다.
참고로 insert( ), remove( ) 함수는 시간 복잡도가 O(N)이라 남발하면 안된다.
파이썬에서 특정한 값의 원소를 모두 제거하는 방법
a에 포함된 원소를 하나씩 확인하며 그 원소가 b에 포함되어 있지 않았을 때만 리스트 변수인 result에 넣겠다는 의미다.
문자열 자료형
JS에서 다른점은 아래와 같다.
JS에서는 문자형 더하기 숫자는 숫자가 문자형으로 자동 변환 되어서 더해졌는데 파이썬에선 그렇지 않고 또
문자열 곱하기 숫자는 JS에서는 NaN, 파이썬에서는 문자열이 n번 만큼 반복된다.
튜플 자료형
튜플 자료형은 이번에 처음 알게된 말이라 잘 이해가 되지않는데 특징은 아래와 같다.
튜플은 한 번 선언된 값을 변경할 수 없다.
리스트는 대괄호를 이용하지만 튜플은 소괄호( ) 를 이용한다.
튜플 자료형은 그래프 알고리즘을 구현할 때 자주 사용된다.
사전 자료형
사전 자료형은 키와 값의 쌍을 데이터로 가지는 자료형이다.
데이터 검색 및 수정에 있어서 리스트보다 훨씬 빠르게 동작한다.
키 데이터만 뽑아서 리스트를 뽑을 때는 keys( ) 함수를, 값 데이터를 뽑아서 리스트로 이용할 때는 values( ) 함수를 이용한다.
집합 자료형
파이썬에서는 집학을 처리하기 위한 집합 자료형을 제공하고 아래와 같은 특징이 있다.
중복을 허용하지 않는다.
순서가 없다.
리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있지만 사전 자료형과 집합 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없다. 그리고 집합 자료형은 키가 존재하지 않고, 값 데이터만 담게 된다.
집합 자료형은 set( ) 함수를 이용하거나, 중괄호 안에 각 원소를 콤마를 기준으로 구분해서 넣으면 된다.
집합 자료형의 연산으로는 합집합, 교집합, 차집합 연산이 있고 합집합은 " | ", 교집합은 " & ", 차집합은 " - " 을 이용한다.
관련 함수로는 하나의 데이터를 추가할 때는 add( ) 함수를, unpdate( ) 함수는 여러 개의 값을 추가할 때,
특정 값을 제거 할 때는 remove( ) 함수를 사용한다.
'Alogorithm' 카테고리의 다른 글
Python 기본 문법 -조건문, 반복문 (0) | 2020.11.13 |
---|