코딩테스트에 자주 사용하는 문법 위주로 정리해보았습니다.
데이터타입
정수형
흔히 수학에서 부르는 0, 양의 정수, 음의 정수를 담는 타입입니다.
사칙연산 부터 지수연산, 정수나눗셈, 나머지 연산 등이 있습니다.
a = 10
b = 3
print(a+b) # 13
print(a-b) # 7
print(a*b) # 30
print(a/b) # 3.3333333333333335
print(a//b) # 3 몫연산
print(a**b) # 1000 지수연산
print(a%b) # 1 나머지연산
print(-a) # -10 부호바꾸기
print(abs(-a)) # 10 절대값
print(a == b) # False 같은가
print(a != b) # True 다른가
print(a > b) # True a가 큰가
print(a < b) # False b가 큰가
print(a >= b) # True a가 b와 같거나 큰가
print(a <= b) # False a가 b와 같거나 작은가
print(a & b) # 2 AND 연산
print(a | b) # 11 OR 연산
print(a ^ b) # 9 XOR 연산
print(~a) # 5 NOT 연산
print(a << 2) # 40 오른쪽으로 두칸 비트 시프트
print(a >> 1) # 5 왼쪽으로 한칸 비트 시프트
print(a and b) # 10 논리연산 AND
print(a or b) # 3 논리연산 OR
print(not a) # False 논리연산 NOT
간략하게 적느라 단순한 연산만 적었지만 여러 변화를 주며 연습해보는 것이 좋습니다.
부동소수형
소수를 저장할 때 사용하는 자료형입니다.
위 연산중 비트 연산은 거의 사용하지 않습니다.
가장 중요한 것은 컴퓨터의 소수 연산은 정확하지 않다는 것입니다.
(1.2-1.1) == 0.1
False
print(1.2-1.1)
0.09999999999999987
이렇게 2진법으로 소수연산을 할 경우에 반드시 이 엡실론(epsilon)이라는 오차가 나는데
이 엡실론을 검증하는 과정을 거치지 않으면 소수 계산은 거의 대부분 잘못된 결과가 나오기 쉽습니다.
import sys
a = 0.1+0.2
b = 0.3
if abs(a-b) < sys.float_info.epsilon:
print("Equal")
else:
print("Not Equal")
컬렉션 데이터
뮤터블 객체
흔히 여러 데이터를 담는 객체 중에 수정이 가능한 객체를 뮤터블 객체라 부릅니다.
파이썬의 뮤터블 객체는 리스트, 딕셔너리, 셋입니다.
이뮤터블 객체
뮤터블 객체와 반대로 변경이 불가능한 객체입니다.
파이썬에선 정수, 부동소수점, 문자열, 튜플입니다.
왜 정수가 뮤터블 객체일까요?
a = 4
b = a
a = 6
b +=1
print(a,b) #6 5
이 코드에서 우린 데이터 변경을 진행한 것 같지만
사실 이건 4라는 객체에서 다른 6이라는 객체를 가리킨 것입니다.
결국 4라는 객체 자체를 변화시키지 않았습니다.
즉, 이뮤터블 객체입니다.
리스트
대괄호[ ] 로 원소를 감싸는 형태의 객체입니다.
코딩 테스트를 하며 수없이 사용할 객체이므로 관련한 문법과 메소드를 잘 알고 가는게 좋습니다.
alist = [] #리스트의 선언
blist = [1,2,3,4] #선언과 동시에 초기화
clist = ['aa','bb','cc','dd','ee'] #문자, 문자열 가능
dlist = [0] * 10 #초기화와 동시에 길이 지정 가능
alist = [1, 2, 3] + [4, 5] # 덧셈을 통해 합병 가능
print(alist) # [1,2,3,4,5]
alist.append(6) #append 를 통해 추가 가능
print(alist) [1, 2 3, 4, 5, 6]
del alist[2] # 지정 인덱스의 값을 제거
print(alist) # [1, 2, 4, 5, 6]
print(alist[2]) #지정 인덱스의 값을 출력
print(alist[0:2]) # 0번째 부터 (2-1)번째 값을 출력
print(alist[-1]) # 가장 뒤의 값을 출력
print(alist[-4:-2]) # [3,4,5]까지 출력
파이썬 리스트의 가장 큰 장점인 리스트 인덱싱과 슬라이싱 입니다.
가장 주의해야하는 점은 [a:b] 로 표시된 슬라이싱이 a부터 b까지 가 아닌
a부터 b-1까지 입니다.
이렇게 된 이유에 대해선 추후 다른 글을 작성해서 설명해보도록 하겠습니다.
중요한 것은
리스트는 0부터 시작해서 n-1까지 존재한다
리스트 슬라이싱에서 [a: b]는 a부터 b-1까지 이다.
이 두가지 입니다.
다음 글에선 튜플, 셋, 딕셔너리와 관련 함수에 대해 작성해보겠습니다.
'CodeTest > Algorithm' 카테고리의 다른 글
02. 시간복잡도 (0) | 2024.07.25 |
---|---|
01. 코딩테스트 연습을 하는 법 (0) | 2024.07.25 |
00. 코딩테스트를 하는 법 (0) | 2024.07.25 |