본문 바로가기
기록/개발일지

개념정리 1주차 (기초 상식/문자열/기초 수학)

by stilinski 2024. 5. 28.
728x90

1️⃣ 알고리즘/자료구조란?

 

알고리즘 - 문제를 효율적으로 푸는 방식

자료구조 - 데이터를 효율적으로 저장하는 방식

 

 

2️⃣ 시간복잡도/공간복잡도/빅오 표기법이란?

 

시간복잡도 - 하나의 프로그램이 돌아가는데 걸리는 시간

공간복잡도 - 하나의 프로그램이 돌아가는데 차지하는 메모리 사용량

빅오 표기법 - 시간복잡도와 공간복잡도를 나타내는 단위

 

시간복잡도와 공간복잡도는 trade-off 관계이다.

프로그램을 빨리 돌아가게 하려면 메모리를 많이 차지할 수 밖에 없고,

메모리 사용량을 줄이려면 느리게 돌아가게 할 수 밖에 없다.

 

 

시간 복잡도 계산법

1 ≤ n ≤ 100 
이면
1 ≤ n ≤ 10^2
이니까
만약 O(n^2)으로 풀면 
최악의 경우 (10^4)
대부분의 코딩테스트에서 10^8을 넘으면 안됨 주의
(10^8(1억)회 연산 약 1초 소요)

이 개념 생소. 문제 풀때마다 계산연습 해야겠음

 

 

 

 

3️⃣ 다음 기능을 가진 함수를 본인 언어로 정리하시오.

 

  1. 문자열 인덱싱 / 슬라이싱
a = "hello"
print(a[0]) # h
print(a[0:4]) # hell
print(a[2:]) # llo
print(a[:2]) # he
print(a[-2:-1) # l
  1. 특정 문자가 있는지 확인
a = "hello"
print('h' in a) # True
  1. 문자열이 같은지 비교
a = "hello"
b = "bye"
print(a is b) # False
  1. 문자열 길이 반환
a = "hello"
print(len(a))
  1. 특정 문자의 인덱스 값 찾기
a = "hello"
print(a.index("h"))
  1. 문자열을 구분자 기준으로 나누고 합치기
a = "h/e/l/l/o"
print(a.split("/")) # ['h', 'e', 'l', 'l', 'o']
  1. 문자열 대소문자 변환
a = "heLlo"
print(a.upper())
print(a.lower())
  1. 기존 값을 다른 값으로 치환
a = "hello"
print(a.replace("h","j")) #jello
  1. 양쪽 끝에서 특정 문자(혹은 공백) 제거
a = "   hello   "
print(a.strip())
  1. 아스키코드로 변환 혹은 대소 비교
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

댓글