프로그래머스 : Python 기초문법

0
post-thumbnail

해당 글의 파이썬 문법은 나동빈님의 책인 "이것이 취업을 위한 코딩테스트다"의 부록 A를 참고하여 정리한것이다.

1. 숫자 자료형

(1) round

round(실수, 반올림위치-1)

(2) 나눗셈

/ : 나눈 결과를 실수로 모두 표현한다.
// : 몫을 반환
% : 나머지를 반환


2. 리스트

(1) 특징

파이썬의 리스트는 연결 리스트 자료구조라고 생각하면 된다. C++의 벡터와 유사!
❗️리스트는 중복을 허용한다.

(2) 리스트 초기화

1차원 리스트 초기화 예시

arr = [0] * n

2차원 리스트 초기화 예시
(특정한 크기의 2차원 리스트를 초기화할때는 아래와 같이 리스트 컴프리헨션을 이용하는 것이 좋다!!)

arr = [[0] * m for _ in range(n)]
👀 여기서 _의 역할은 👀 → 반복을 위한 변수의 값을 무시하기 위해

(3) 관련 메소드

사용법설명
리스트.append()리스트 끝에 원소 삽입
리스트.sort()default가 오름차순, 괄호 안에 reverse=True 옵션을 주면 내림차순
리스트.reverse()리스트 원소 순서 뒤집기
리스트.insert(인덱스,값)특정 인덱스에 값 삽입
리스트.count(값)특정 값의 원소 개수
리스트.remove(값)리스트는 중복이 가능하기 때문에 값을 가진 원소가 여러개면 하나만! 제거한다.

위의 표를 참고하면 remove()함수는 특정 값의 데이터를 단 하나만 제거한다. 만약 특정 값의 데이터를 모두 리스트에서 제거하고 싶다면 아래를 참고하자!

삭제하고 싶은 데이터를 remove_set에 넣고 사용하면 된다.


3. 튜플

(1) 특징

튜플은 리스트와 매우 유사한데 차이점이 있다면, 리스트는 mutable하지만 튜플은 immutable하다는 것이다.
❗️튜플은 중복을 허용하지 않는다.


4. 문자열

(1) 문자열 연산

문자열끼리 + 덧셈을 진행하면 연결된다.
문자열에 숫자를 곱하면 그 값만큼 여러번 연결된다.

또한 파이썬에서 문자열은 내부적으로 리스트로 처리되기 때문에 인덱싱과 슬라이싱을 이용할 수 있다.


5. 사전

(1) 특징

사전의 key값은 immutable한 데이터만 가능하다. 또한 딕셔너리로 만들어진 key값은 문자열로 바뀐다.
파이썬의 사전 자료형은 해시테이블을 이용하기 때문에 데이터의 검색 및 수정을 빠르게 처리할 수 있다.
❗️사전의 key값은 중복을 허용하지 않는다.

(2) 관련 메소드

사용법설명
사전.keys()key값만 담은 리스트
사전.values()value값만 담은 리스트
사전.items()(key,value)쌍을 튜플로 묶은 리스트

6. 집합

(1) 특징

❗️집합은 중복을 허용하지 않는다.
집합은 순서가 없기 떄문에 인덱싱이나 슬라이싱을 사용할 수 없다.

(2) 연산

기본적인 집합 연산으로 합집합(|), 교집합(&), 차집합(-)이 있다.


7. 입출력

(1) Input

파이썬에서 input()으로 데이터를 받으면 문자열로 변환하여 받는다. 따라서 정수형 데이터로 처리하기 위해서는 int()함수를 사용해야 한다.

여러개의 데이터를 한번에 입력 받을때 공백으로 구분해야 되는경우가 많은데, 이때 아래의 함수를 이용하면 된다.

❗️list(map(int, input().split()))❗️

코테에서 입력의 개수를 많이 요하는 경우에 input()함수를 그대로 사용하면 시간 초과가 날 수 있기 때문에 아래와 같이 사용한다. rstrip()함수는 입력 후 엔터가 줄바꿈 기호로 입력되기 때문에 해당 기호를 제거하기 위해 사용한다.

(2) Print

자바에서는 출력할 때 정수형과 문자열을 +덧셈하여 출력할 수 있지만, 파이썬에서는 불가능하다. 따라서 자료형을 변환하여 사용하거나 ,를 구분자로 사용해서 출력한다. 이때 ,를 쓰게 되면 변수의 값 사이에 공백이 삽입된다는 점을 참고해야 한다.

f-string 문법
해당 문법을 사용하여 자료형의 변환 없이도 {}를 이용하여 출력할 수 있다.


파이썬의 주요 라이브러리에 대해서는 다음 글에서 정리한다!

profile
재미있는 아이디어 떠올리는 것을 좋아하고, 이를 구현하여 세상에 즐거움을 선물하고 싶은 사람입니다.

0개의 댓글