정규표현식 활용 문제 풀이로 강의가 시작되었다.
페이지 교체 알고리즘 FIFO, LRU에 대해서 배웠다.
정규표현식 활용
1. 알파벳 소문자와 공백으로 이루어진 문자열 my_string이 주어질 때, 모음을 제거한 문자열 출력
re.sub(r'[aeiou]', '', my_string)
sub을 통해 모음인 aeiou를 제거하여 반환한다. 정규표현식 라이브러리 re를 로드하는 구문 import re는 당연히 선행되어야 한다.
my_string = 'hi everyone'
re.sub(r'[aeiou]', '', my_string)
# 실행 결과
'h vryn'
hi에서 i가 제거되었고 everyone에서 e 3개와 o가 제거되었다.
2. 알파벳 대소문자로 이루어진 문자열 my_string과 알파벳 하나로 이루어진 letter가 주어질 때 my_string에서 letter를 제거한 문자열 출력
re.sub(letter, '', my_string)
sub을 이용하여 my_string에서 letter를 제거한다. 위 문제와 매우 흡사하다.
my_string = 'hello'
letter = 'l'
re.sub(letter, '', my_string)
# 실행 결과
'heo'
hello에서 l이 제거된 heo가 출력되었다.
3. 알파벳과 한자리 자연수로 구성된 문자열 my_string이 주어질 때, 자연수만 추출해 덧셈한 결과 출력
result = re.sub(r'[^1-9]', '', my_string)
sum(map(int, result))
my_string에서 1~9가 아닌 것을 제거한다. 즉 숫자만 남긴다. 그 후 두 번째 줄에서 그 숫자들을 모두 더한다.
my_string = 'hi4 e5vERy7boDy9'
result = re.sub(r'[^1-9]', '', my_string)
sum(map(int, result))
# 실행 결과
25
알파벳들은 모두 제거되고 4, 5, 7, 9만 남게 된다. 그 총합인 25가 출력된다.
4. 자연수 number가 주어질 때 number에 포함된 3, 6, 9의 개수 출력
len(re.findall('[369]', str(number)))
number를 문자열로 변경하여 3, 6, 9를 모두 찾은 리스트의 길이를 구한다.
number = 3377769345
len(re.findall('[369]', str(number)))
# 실행 결과
5
7과 4, 5는 제거되고 총 5개가 남는다.
페이지 교체 알고리즘
FIFO(First In First Out)과 LRU(Least Recently Used) 알고리즘에 대해 학습했다.
코딩테스트 문제에서 나올만한 Top 2 알고리즘이라 하셨다. 그리고 알고리즘에 대해 문제에서 설명하지 않을 수 있기 때문에 정확히 알고 있어야 한다.
특히 LRU 알고리즘은 꼭 숙지하고 넘어가자.
과거 카카오 공채 코딩테스트에서 나왔던 문제들을 풀고 강의가 마무리되었다.
- 다트게임, [1차] 캐시, 비밀지도, 실패율, 오픈채팅방
이미 풀었던 문제들도 있었지만 다시 한 번 풀게 되는 계기가 되었고 좋았다.
다음주가 마지막 수업인데 아쉬우면서 기대가 된다.
'AI SCHOOL > TIL' 카테고리의 다른 글
[DAY 79] CNN과 날씨 이미지를 활용한 멀티클래스 분류 (1) | 2023.04.18 |
---|---|
[DAY 78] CNN과 이미지 데이터를 활용한 말라리아 감염 여부 이진 분류 예측 (0) | 2023.04.17 |
[DAY 76] Week 17 Insight Day 미니프로젝트5 시작, Resume & Portfolio 특강 (0) | 2023.04.13 |
[DAY 75] PyTorch를 활용한 자동차 연비 회귀 예측 (0) | 2023.04.12 |
[DAY 74] Tensorflow를 활용한 자동차 연비 회귀 예측 (0) | 2023.04.11 |
댓글