CodeKata
SQL
109. Consecutive Numbers
WITH lead_lag AS (
SELECT
LAG(id) OVER (ORDER BY id) AS prev_id
, id
, LEAD(id) OVER (ORDER BY id) AS next_id
, LAG(num) OVER (ORDER BY id) AS prev_num
, num
, LEAD(num) OVER (ORDER BY id) AS next_num
FROM
Logs
)
SELECT
DISTINCT num AS ConsecutiveNums
FROM
lead_lag
WHERE
prev_num = num
AND next_num = num
AND next_id - id = 1
AND id - prev_id = 1
;
참고할 만한 다른 풀이
select
distinct l1.num as ConsecutiveNums
from
Logs l1
join Logs l2
on l1.num = l2.num and l2.id = l1.id + 1
join logs l3
on l2.num = l3.num and l3.id = l2.id + 1
SELECT
DISTINCT l1.num AS ConsecutiveNums
FROM
Logs l1
JOIN Logs l2 ON l1.id = l2.id - 1
JOIN Logs l3 ON l1.id = l3.id - 2
WHERE
l1.num = l2.num
AND l2.num = l3.num
;
WITH CTE AS(
SELECT
id
, num
, LAG(num,1) OVER(ORDER BY id) AS prev_num
, LEAD(num,1) OVER(ORDER BY id) AS next_num
FROM
Logs
)
SELECT
DISTINCT num AS ConsecutiveNums
FROM
CTE
WHERE
num=next_num
AND num=prev_num
;
SELECT
DISTINCT l1.num AS ConsecutiveNums
FROM
Logs l1
WHERE
EXISTS (
SELECT
1
FROM
Logs l2
WHERE
l2.id = l1.id + 1 AND l2.num = l1.num
AND EXISTS (
SELECT
1
FROM
Logs l3
WHERE
l3.id = l1.id + 2 AND l3.num = l1.num
)
)
;
Python
46. 숫자 문자열과 영단어
def solution(s):
answer = 0
unit_eng = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
for i, a in enumerate(unit_eng):
s = s.replace(a, str(i))
answer = int(s)
return answer
참고할 만한 다른 풀이
num_dic = {"zero":"0", "one":"1", "two":"2", "three":"3", "four":"4", "five":"5", "six":"6", "seven":"7", "eight":"8", "nine":"9"}
def solution(s):
answer = s
for key, value in num_dic.items():
answer = answer.replace(key, value)
return int(answer)
def solution(s):
result = ""
tmp = ""
arr = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
for j in s:
if(j.isnumeric()):
result+=j
else:
tmp+=j
if tmp in arr:
result+=str(arr.index(tmp))
tmp=""
return int(result)
라이브 세션
통계야 놀자 6회차
머신러닝 빌드업 1회차
머신러닝 강의
심화 2주차
SDL
추가 공부
회고
- 통계학 라이브 세션 종료~
- 머신러닝 라이브 세션 시작
- 오늘 내용은 간단한 소개 같은 거여서 이해하기 괜찮았음
- 내일 QCC 3차 있는데 이번엔 진짜 문제를 잘 읽고 신중하게 풀어야겠다.