Today's Goals
1. 코테 연습은 매일매일 - 코드카타 SQL & 파이썬
2. 통계학...머신러닝... 논문으로 충분했는데
갑자기 가게된 가족여행으로 4일을 쉬다 돌아오니 적응하기 힘들다.
고작 4일인데!!!!
흐릿한 통계학 기억도 붙잡아야하고, 머신러닝도 다시 공부해야하다니
이번주가 벌써 쉽지 않을 것 같다.
그래도 아예 처음 접하는 영역이 아닌게 얼마나 다행인지
1. 코드카타
SQL
[like와 같은 역할을 하지만, 정규표현식을 써야하는 아주 다른 방법]
- REGEXP : 정규 표현식을 활용하여 기본 연산자보다 복잡한 문자열 조건을 사용할 수 있음
SELECT *
FROM Users
WHERE mail REGEXP '^[A-Za-z][A-Za-z0-9_.-]*@leetcode[.]com$';
- @앞의 *는 앞에 있는 문자 클래스([ ])에 대해 적용됨
[정규표현식...? 그게뭔데]
- regular expression(정규표현식) : 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어, 패턴에 기반한 문자열 처리 방법
- 정규 표현식의 종류는 아래 블로그 참고
[정규표현식에서 백슬레시(\)의 의미]
- 특수문자를 문자 그대로 사용하기 위해(이스케이프 문자로 사용) 필요함
- 점(.)은 정규표현식에서 임의의 한자리 문자를 의미하므로 문자 그대로 점 기호로 인식하기 위해서는 백슬레시(\)가 필요함
- 위의 SQL 쿼리에서 [A-Za-z0-9_.-] > [A-Za-z0-9_\.-] 이런식으로 표현 가능
- 문자열 자체에서는 기호 자체로 인식시키기 위해 두개의 백슬레시(\\) 필요 > @leetcode\\.com$
- 이는 한개의 백슬레시는 문자열 구문 내에서 이스케이프 문자로 인식하게 하는 역할, 두번째 백슬레시는 정규표현식 엔진에 전달될 때 점(.)을 문자 그대로 인식시키는 역할
- 문자 클래스([ ]) 안에서는 점이 기본적으로 문자로 해석되기 때문에 백슬레시를 빼도 됨
파이썬
[알파벳을 숫자로, 숫자를 알파벳으로, 아스키 코드]
- 아스키코드 : 컴퓨터에 문자열이나 기호 전달을 위해 숫자로 인코딩하는 것
- chr() : 숫자(아스키코드)에서 문자열로
- ord() : 문자열에서 숫자(아스키코드)로
def solution(s, n):
s = list(s)
for i in range(len(s)) :
if s[i].isupper() :
s[i] = chr((ord(s[i]) - ord('A') + n) % 26 + ord('A'))
elif s[i].islower() :
s[i] = chr((ord(s[i]) - ord('a') + n) % 26 + ord('a'))
return "".join(s)
- 문자를 민 순서에서 Z나 z 다음에는 다시 A나 a로 돌아가 반복해야하기 때문에 알파벳 숫자인 26으로 나누어 나머지 값(알파벳 마다의 새로운 고유값이 되는 것)으로 알파벳을 반복할 수 있음
- 아스키 코드를 활용하지 않고, 알파벳에 자체적인 숫자를 부여하고 계산하는 풀이도 있음(아래 블로그)
https://data-science-blog.tistory.com/1
아스키코드에서 알파벳 대응표 확인
https://ooyoung.tistory.com/104
'데이터 부트캠프 - Today I Learned' 카테고리의 다른 글
[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_8주차_25.01.16 (0) | 2025.01.16 |
---|---|
[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_8주차_25.01.15 (0) | 2025.01.15 |
[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_7주차_25.01.09 (0) | 2025.01.09 |
[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_7주차_25.01.08 (0) | 2025.01.08 |
[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_7주차_25.01.07 (0) | 2025.01.07 |