오늘 한 일
- 팀 노션 작성
- 알고리즘 10문제(프로그래머스)
- 알고리즘 세션
- AI 스쿼드 3
- Github 일일커밋 시작
- TIL 작성
오늘의 리뷰
1. range(len()) 복습
a_list = [1, 2, 3, 5, 6, 7, 4, 7]
for i in range(len(a_list)): # 리스트 a_list의 길이를 범위로 설정하여 반복
print(f'index: {i} , value: {a_list[i]}')
b = 'watermelon'
for i in range(len(b)): # 문자열 watermelon의 길이를 범위로 설정하여 반복
print(i, b[i])
2. 두수의 합, 차, 곱, 나눗셈
(1) lambda식
- 함수_본질적으로 반복을 편하게 하기 위해 선언하는 것.
- 하지만 간단한 식이나 한 번 쓰고 말(재사용x) 코드라면 lambda식을 통해 한줄로 코드 작성하는 것도 좋음
solution = lambda num1, num2 : num1 + num2
solution = lambda num1, num2 : num1 - num2
solution = lambda num1, num2 : num1 * num2
solution = lambda num1, num2 : num1 / num2
(2) 새로운 접근 (esp. 곱)
def solution(num1, num2):
i = 0
answer = 0
while i < num2:
answer += num1
i += 1
return answer
3. 숫자 비교하기
def solution(num1, num2):
if num1 == num2:
answer = 1
else:
answer = -1
return answer
def solution(num1, num2):
return 1 if num1 == num2 else -1
4. 몫, 나머지 구하기
- 몫(//), 나머지(%) _단, num2가 0인 경우는 연산 자체가 불가능 (=> 예외처리가 없으며 오류 발생함)
- divmod()는 튜플로 반환(return)됨. 따라서 인덱스로 바로 접근할 수 있
def solution(num1, num2):
answer = -1
answer = num1 // num2
return answer
def solution(num1, num2):
answer = divmod(num1, num2)
return answer[0]
# 몫 구하기
def solution(num1, num2):
answer = -1
answer = num1 % num2
return answer
def solution(num1, num2):
answer = divmod(num1, num2)
return answer[1]
def solution2(num1, num2):
while num1 >= num2:
num1 -= num2
return num1
# 나머지 구하기
5. 각도기
def solution(angle):
if 0 < angle < 90:
answer = 1
elif angle == 90:
answer = 2
elif 90 < angle < 180:
answer = 3
elif angle == 180:
answer = 4
return answer
def solution(angle):
return 2 if angle ==90 else 1 if angle <90 else 4 if angle ==180 else 3
6. 짝수의 합
def solution(n):
return sum([x for x in range(2, n+1, 2)]) # 리스트 comprehension
def solutions2(n):
return sum(range(2, n+1, 2))
def solutions3(n):
return sum(filter(lambda x: x % 2 == 0, range(n+1)))
def solutions4(n):
cnt = 0
for i in range(2, n+1, 2):
cnt += i
return cnt
7. 알고리즘 세션_요약
- 시간복잡도: 빅오 표기법
- => for문_O(N), 이중for문_O(N^2)(=제곱, i를 도는 동안 j도 도니까), 한 개의 파일에서 시간복잡도는 더 큰 걸 따라감
- 공간복잡도
- 배열 및 linked list => 일반/더블/원형 linked list: WIL
'TIL' 카테고리의 다른 글
[TIL 2024. 03. 06] (0) | 2024.03.07 |
---|---|
[TIL 2024. 03. 05] (0) | 2024.03.06 |
[TIL 2024. 02. 29] (0) | 2024.02.29 |
[TIL 2024. 02. 28] (0) | 2024.02.28 |
[TIL 2024. 02. 27] (0) | 2024.02.28 |