728x90
1️⃣ 알고리즘/자료구조란?
알고리즘 - 문제를 효율적으로 푸는 방식
자료구조 - 데이터를 효율적으로 저장하는 방식
2️⃣ 시간복잡도/공간복잡도/빅오 표기법이란?
시간복잡도 - 하나의 프로그램이 돌아가는데 걸리는 시간
공간복잡도 - 하나의 프로그램이 돌아가는데 차지하는 메모리 사용량
빅오 표기법 - 시간복잡도와 공간복잡도를 나타내는 단위
시간복잡도와 공간복잡도는 trade-off 관계이다.
프로그램을 빨리 돌아가게 하려면 메모리를 많이 차지할 수 밖에 없고,
메모리 사용량을 줄이려면 느리게 돌아가게 할 수 밖에 없다.
시간 복잡도 계산법
1 ≤ n ≤ 100
이면
1 ≤ n ≤ 10^2
이니까
만약 O(n^2)으로 풀면
최악의 경우 (10^4)
대부분의 코딩테스트에서 10^8을 넘으면 안됨 주의
(10^8(1억)회 연산 약 1초 소요)
이 개념 생소. 문제 풀때마다 계산연습 해야겠음
3️⃣ 다음 기능을 가진 함수를 본인 언어로 정리하시오.
- 문자열 인덱싱 / 슬라이싱
a = "hello"
print(a[0]) # h
print(a[0:4]) # hell
print(a[2:]) # llo
print(a[:2]) # he
print(a[-2:-1) # l
- 특정 문자가 있는지 확인
a = "hello"
print('h' in a) # True
- 문자열이 같은지 비교
a = "hello"
b = "bye"
print(a is b) # False
- 문자열 길이 반환
a = "hello"
print(len(a))
- 특정 문자의 인덱스 값 찾기
a = "hello"
print(a.index("h"))
- 문자열을 구분자 기준으로 나누고 합치기
a = "h/e/l/l/o"
print(a.split("/")) # ['h', 'e', 'l', 'l', 'o']
- 문자열 대소문자 변환
a = "heLlo"
print(a.upper())
print(a.lower())
- 기존 값을 다른 값으로 치환
a = "hello"
print(a.replace("h","j")) #jello
- 양쪽 끝에서 특정 문자(혹은 공백) 제거
a = " hello "
print(a.strip())
- 아스키코드로 변환 혹은 대소 비교
print(ord('j')) # 106 104
print(ord('j') < ord('h')) #False
728x90
'기록 > 개발일지' 카테고리의 다른 글
8월 4째주...? 실화냐.. 개발공부일지 (0) | 2022.08.23 |
---|---|
8월 3째주 개발공부 일지 (0) | 2022.08.16 |
8월 2째주 개발공부일지 (0) | 2022.08.08 |
8월 1째주 개발공부일지 (0) | 2022.08.01 |
7월 5째주 개발공부일지 (0) | 2022.07.25 |
댓글