minuco
Published 2021. 3. 1. 16:14
파이썬 - 자료형 Algorithms/with python

파이썬 자료형은 c/c++, java와 같은 다른 언어에서 사용되는 기본 자료형을 제공할 뿐만 아니라 사전, 집합 자료형 등 강력한 기능을 제공하는 자료형을 기본으로 내장하고 있습니다.

수 자료형

Number은 코딩 테스트에서 가장 기본적인 자료형이다. 정수형, 실수형 등이 있다.

정수형

정수형이란 말 그대로 정수를 뜻하는 자료형이며, 양의 정수, 음의 정수, 0 이 있다. 알고리즘 문제는 대부분 입력과 출력 값이 정수형이다.

a = 100 # 양의 정수
print(a)

b = -100 # 음의 정수
print(b)

# 0
a = 0
print(a)

출력 : 100, -100, 0

실수형

실수형은 소수점 아래의 데이터를 포함하는 수 자료형으로 파이썬에서는 변수에 소수점을 붙인 수를 대입하면 실수형 변수로 처리한다.

# 양의 실수
a = 157.93
print(a)

# 음의 실수
a = -100.78
print(a)

# 소수부가 0일떼 0을 생략
a = 8.
print(a)

# 정수부가 0일때 0을 생략
a = -.9
print(a)

출력 : 157.93, -100.78, 8.0, -0.9

 

실수형 데이터를 표현하는 방식으로 파이썬에서는 e나 E를 이용한 지수 표현방식을 이용할 수 있다. e 다음에 오는 수는 10의 지수부를 의미한다. ex) 1e9 -> 10의 9 제곱인 (1,000,000,000)이 된다.

# 10억의 지수 표현 방식
a = 1e9
print(a)

# 752.5
a = -75.25e1
print(a)

# 3.954
a = 3594e-3
print(a)

컴퓨터는 실수를 정확하게 표현하지 못한다. 왜냐하면 보통 컴퓨터 시스템은 데이터를 처리할 때 2진수를 이용하며, 실수를 처리할 때 부동 소수점 방식을 이용하기 때문이다.

a = 0.3 + 0.6
print(a)

if a == 0.9:
    print(True)
else:
    print(False)

출력 : 0.8999999999999999, False

 

따라서 소수점 값을 비교하려면 round() 함수를 이용해야 한다.

round() 함수의 호출 인자는 두 개가 들어가는데 첫 번째 인자는 실수형 데이트이고, 두 번째 (반올림하고자 하는 위치 -1 )이다.

ex) 123.456 -> round(123.456, 2)라고 작성하면 123.46이 된다.

a = 0.3 + 0.6
print(round(a, 4))

if round(a, 4) == 0.9:
    print(True)
else:
    print(False)

출력 : 0.9, True

 

코딩 테스트 문제에서는 실수형 데이터를 비교할 때 소수점 다섯 번째 자리에서 반올림한 결과가 같으면 정답으로 인정하는 식으로 처리한다. 그래서 반올림하고자 하는 위치는 5번째라서 -1을 해주어 두 번째 인자에 4를 적어주었다.

수 자료형의 연산

프로그래밍의 사칙연산 (+,-,x,/)을 이용해 계산한다. 이중 나누기 연산자 (/)를 주의 헤서 사용하자. 왜? 파이썬에선 나누기 연산자(/)를 실수형으로 처리하기 때문이다.

 

코딩 테스트 문제를 풀 때 나머지 연산자를(%)할 때가 많은데, 특정 변수가 홀수인지 짝수인지 구별하기 위해서이다. 또한, 나눈 결과의 몫만을 얻고자 할 때에는 몫 연산자(//)를 이용한다.

a = 7
b = 3

# 나누기
print(a / b)

# 나머지
print(a % b)

# 몫
print(a // b)

 출력 : 2.3333333333333335, 1, 2

 

이 외에도 거듭제곱 연산자 (**)를 비롯해 다양한 연산자들이 존재한다.

a = 5
b = 3

print(a ** b)

출력 : 125

 

a의 b승 즉, 5의 3승인 125이다.

이것이 코딩 테스트다 소스코드

https://github.com/ndb796/python-for-coding-test


파이썬 자료형에 대해 공부해 보았습니다.

알고리즘에 필요한 파이썬을 공부하고 알고리즘 문제를 풀며 실력을 키워나가 봅시다!

 

 

 

 

참고 : 이것이 취업을위한 코딩 테스트다 with 파이썬

profile

minuco

@minuco

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!