데이터 부트캠프 - Today I Learned

[스파르타 내일배움캠프 / 데이터 분석 트랙] TIL(Today I Learned)_8주차_25.01.14

onion95 2025. 1. 14. 20:59

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(정규표현식) : 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어, 패턴에 기반한 문자열 처리 방법
  • 정규 표현식의 종류는 아래 블로그 참고

https://velog.io/@gillog/MySQL-REGEXPRegular-Expression%EC%A0%95%EA%B7%9C-%ED%91%9C%ED%98%84%EC%8B%9D

 

[MySQL] REGEXP(Regular Expression(정규 표현식))

REGEXP는 LIKE를 이용한 검색과 달리 Regular Expression(정규 표현식)를 이용해 검색한다.REGEXP를 사용하면 SQL에서 정규표현식을 활용하여 기본 연산자보다 복잡한 문자열 조건을 걸어 데이터를 검색할

velog.io

 

[정규표현식에서 백슬레시(\)의 의미]

  • 특수문자를 문자 그대로 사용하기 위해(이스케이프 문자로 사용) 필요함
  • 점(.)은 정규표현식에서 임의의 한자리 문자를 의미하므로 문자 그대로 점 기호로 인식하기 위해서는 백슬레시(\)가 필요함
  • 위의 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

 

[python] 프로그래머스 - 시저 암호 (두 가지 풀이방법)

나의 풀이 : 문자열 인덱싱 사용 def solution(s, n): low = "abcdefghijklmnopqrstuvwxyz" # 소문자. 인덱스는 0에서 25 up = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" answer = '' for char in s: if char in low: ind = low.find(char)+n # low 문자열에서

data-science-blog.tistory.com

아스키코드에서 알파벳 대응표 확인

https://ooyoung.tistory.com/104

 

파이썬 아스키코드 변환 함수 ord( ), chr( ) (Python)

아스키코드 변환 함수 ord( ), chr( ) - 순서 - 1. 아스키코드 설명 2. ord( ) 3. chr( ) 1. 아스키코드(ascii) 아스키는 미국 정보교환 표준 부호 (American Standard Code for Information Interchange)이다. 줄여서는 ASCII라

ooyoung.tistory.com