온라인 개발 환경
리플릿 : repl.it
파이선튜터
오프라인 개발 환경
PyCharm(파이참)
* 대규모 프로젝트에 사용되며, 디버깅 과정 필요하면 사용하길 권유
*지만, 깃git 이나 블로그에 기록해놓는 방식을 추천드린다
자신만의 소스코드 관리하기
알고리즘 노트 => 팀노트 라고 한다
자주 사용하는 알고리즘 코드를 라이브러리 화 하면 좋다
*어느 정도 문제유형에 있어서 비슷한 코드 형식을 띈다
IT 기업 코딩 테스트
- 2~5시간
- 출제빈도: 1. 그리디 2. 구현 3. DFS/BFS (삼성전자 주로)
알고리즘 성능 평가
- 복잡도 1. 시간 복잡도 : 수행시간 2. 공간 복잡도 : 메모리 사용량
- 낮은 복잡도를 띌 수록 좋은 알고리즘이라 칭한다~
- 빅오 표기법(Big-O Notation) : 가장 큰 차수를 고려, 계수는 고려하지 않는다
- 예) 3N³ + 2N : 중에서 큰 차수인 첫 번째 항을 고려하며, 계수인 3은 고려하지 않는다 => N^3
-
순위 명칭 O(1) 상수시간(Constant time) O(logN) 로그시간(Log time) O(N) 선형시간 O(NlogN) 로그 선형시간 O(N²) 이차 시간 O(N³ㅇ) 삼차 시간 O(2") 지수 시간 - * 제곱 표시는: ㅊ + 한자 (눌러서 표시해주면 됩니다~)
N개의 데이터의 합을 계산하는 프로그램 예제
array = [3, 5, 1, 2, 4] # 5개의 데이터(N=5)
summary = 0 # 합계를 저장할 변수
# 모든 데이터를 하나씩 확인하여 합계를 계산
for x in array:
summay += x
# 결과를 출력
print(summary)
2중 반복문 이용
시간복잡도 개념 이해
빅오표기법(N₂) : O(N²)
array = [3, 5, 1, 2, 4] # 5개의 데이터(N=5)
for i in array: # i 가 array 한바퀴 돈다는 의미 : 5번
for j in array: # j 가 array 한바퀴 돈다는 의미 : 5번
temp = i * j
print(temp)
* 5 * 5 = 25 = 5² = O(N²)
알고리즘 문제 해결
핵심 아이디어를 캐치하면 간결하게 소스코드 작성하는 문제가 다수
1. 지문읽기 및 컴퓨터적 사고
2. 요구사항(복잡도) 분석
3. 문제 해결을 위한 아이디어 찾기
4. 소스코드 설계 및 코딩
수행시간 측정시간
내가 짠 코드가 얼마나 소요되는지 알 수 있는 방법이다~
코테나 실행시간 궁금할 때 요긴~
import time
start_time = time.time() # 측정시간
# 프로그램 소스코드
end_time = time_time() # 측정종료
print("time", end_time - start_time) # 수행시간 출력
자료형
모든 프로그래밍 결국 데이터를 다루는 행위
정수형
코테 정수형 많이 쓰임
양의 정수, 음의 정수, 0
a = 1000 # a 라는 변수에 대입연산자 이용하여 대입
print(a)
a = 777
print(a) # 어떤 값 할당
a = a+5 # 증가 가능
print(a) # 782
실수형
소수점 아래의 데이터 포함
0.7 -> .7 (로 표현 가능함~, 회계 계산기처럼 그런지 궁금했는데 풀림~)
# 소수부가 0 일 때 0 을 생략
a = 5
print(a) # 5.0
# 정수부가 0 일 때 0을 생략
a = -.7
print(a) # -0.7
지수표현 방식
- 유효숫자 e^지수 = 유효숫자 x 10^지수
# 1,000,000,000 (10억)의 지수표현방식
a = 1e9
print(a) # 1000000000.0 (보통 실수형으로 인식)
# 752.5
a = 75.25e1
print(a) # 752.5
# 3.954
a = 3954e-3
print(a) # 3.954
- 지수 기본 : 실수형 data 가 기본값임~
a = int(1e9)
print(a) # 1,000,000,000
- int 를 씌어주면서 실수 연산 오류를 예방할 수 있다~
- *실수 연산 오류란?
- 1/3 = 0.333333 정확도 십진수에서도 정확하지 않은 연산 존재 , 이진수(컴퓨터)에서 그러한 문제 발생
a = 0.3 + 0.6
print(a) # 0.899999999999
if a == 0.9:
print(True)
else:
print(False) # False 가 출력됨!!! : 이진수에서의 실수연산 오류가 발생함
- 실수 연산 오류 잡는 방법 : round( ) 함수 이용
- 소수 셋째짜리에서 반올림 => 소수점 둘째짜리에서 출력됨~
round(123.456,2) # 123.46
- 소수 셋째짜리에서 반올림 => 소수점 둘째짜리에서 출력됨~
a = 0.3 + 0.6
print(round(a, 4)
if round(a, 4) == 0.9: # 0.9
print(True)
else:
print(False) # True
- round 함수 이용함으로써 0.9 의 값과 True 라고 올바르게 출력이 됨~
수 자료형의 연산
- 나누기 연산자 (/) 주의해서 사용 : (/) 는 나눠진 결과를 '실수형'으로 변환
- 다양한 설계할 때, 나머지 연산자(%) 이용
- 예) a 가 홀수인지 check -> i % 2 != 0 -> a = 홀수
- 몫 연산자(//)
- 거듭제곱(**)
a = 7
b = 3
# 나누기
print(a / b) # 2.333333335
# 나머지
print( a % b) # 1
# 몫
print(a // b) # 2
# 거듭제곱
print(a ** b) # 125
# 제곱근
print(a ** 0.5) # 2.2366..
리스트 자료형
여러 개의 data 연속적으로 처리하기 위해 사용하는 자료형~ 임
'2021-1 > Code , Setting ..' 카테고리의 다른 글
VSCODE | 환경 설정 (0) | 2021.11.01 |
---|---|
ML 수업 | 파이썬 기본, turtle(그래픽) 그리기 (0) | 2021.10.18 |
코딩테스트 | 추천 블로그 (0) | 2021.10.12 |
Xshell | 코드 백업 (0) | 2021.10.12 |
팀프로젝트 | 리눅스 단축키 및 편집기 환경설정, 코딩 팁 (0) | 2021.10.11 |