3주차 시작. 오늘은 중간에 청년정책박람회 다녀오느라 학습을 많이 못 했다. 내일 일과시간 전 남은 강의 복습하기
학습 내용
SQL 문제가 뒤로 갈수록 난이도가 높아진다. 하루 하나 풀기도 버겁다.
한 시간 반에 걸쳐서 풀었는데, 계속 틀려서 포기하려다가 조건 하나 수정하니까 성공해서 어이없었다...
프로그래머스.상품을 구매한 회원의 비율 구하기``` SQL WITH t as (SELECT count(USER_ID) t_cnt FROM USER_INFO WHERE YEAR(JOINED) = '2021') SELECT YEAR(SALES_DATE) as YEAR ,MONTH(SALES_DATE) as MONTH ,count(distinct s.USER_ID) as PURCHASED_USERS ,round(count(distinct s.USER_ID)/t_cnt,1) as PURCHASED_RATIO -- 비율 계산이라 전체를 계산한 결과값이 필요해서 WITH문에서 total을 계산한 컬럼을 끌어와 썼다. -- 문제에서 요구한 바는 소숫점 둘째자리에서 반올림이어서 틀렸었다. round(x, 2)로 적었었음. 수정해서 맞음 FROM ONLINE_SALE as s INNER JOIN USER_INFO i on s.USER_ID = i.USER_ID , t WHERE YEAR(JOINED) = '2021' GROUP BY 1, 2 ORDER BY 1, 2 ```
재밌는데 이렇게 풀어도 되나 싶었던 문제
- 프로그래머스.하샤드 수
- 한동안 거의 모든 알고리즘 문제를 리스트를 만들어서 > 리스트에 담긴 데이터를 string이나 int로 바꾼 다음 결과값을 출력하게 했다.
- 과연 이렇게 풀리는 대로 코테를 풀어도 되는 걸까...?
Python # 하샤드 수 : 양의 정수 x가 있을 때 각 자리의 숫자 합으로 x가 나누어 떨어지는 수 def solution(x): list=[int(i) for i in str(x)] # x를 string 으로 바꿔서 각 자리 숫자를 하나씩 쪼개고, 다시 int type으로 바꿨다. if x % sum(list) == 0: # 그리고 list의 합으로 x를 나눴을 때 나머지가 0이 되면(=나누어 떨어지면) return True # True를 출력함 else: return False
오랜만에 수학 풀어서 재밌었던 문제
- 프로그래머스.두 정수 사이의 합
- 문제 보자마자 이건 등차수열이다! 이러면서 풀었던 문제. 정작 등차수열 공식은 생각이 안 나서 손으로 수식을 썼다...
Python # a, b 사이의 정수 개수가 짝수일 때 : sum(a-3, a-1, a+1, a+3) = 4a = 갯수 * ((a-3 + a+3)/2) = 갯수 * (a+b)/2 # a, b 사이의 정수 개수가 홀수일 때 : sum(a-2, a-1, a, a+1, a+2) = 5a = 갯수 * ((a-3 + a+3)/2) = 갯수 * (a+b)/2 # a에서 b까지의 거리(=길이)를 구하고, (a+b)/2 한 값을 곱해주면 두 정수 사이 숫자들의 합이 나온다. def solution(a, b): if a <= b: answer = ((a + b) / 2) * len(range(a, b+1)) # range는 end 조건 정수 기준 하나 앞에서 끝난다! 그래서 b+1 else: answer = ((a + b) / 2) * len(range(b, a+1)) # 문제 조건에서 a <= b 라는 조건이 주어진 게 아니라서 변수에 할당된 값이 a > b 일 경우 오류가 발생했다. # 그래서 range 범위를 거꾸로 설정한 else 문 작성. return answer
고찰 & 기타
- 오늘 목표했던 파이썬 5주차 강의는 완강하지 못해서 아쉽다.
- 외출로 학습시간이 너무 늘어지다보니 밤에는 집중이 안 돼서 차라리 내일 아침에 보충하는 게 나을 것 같다.
- 코테 풀면서 오랜만에 수학 문제 푸는 거 같은 느낌이 들어서 재밌었다.
사실 등차수열 계산법은 루미큐브(보드게임) 할 때 맨날 쓰는 방법이다. (n-1)+(n)+(n+1) = 3n ...
'내일배움캠프_데이터분석_2기 > TIL' 카테고리의 다른 글
[TIL] camp_day13_240501 (1) | 2024.05.01 |
---|---|
[TIL] camp_day12_240430 (0) | 2024.04.30 |
[TIL] camp_day10_240426 (0) | 2024.04.26 |
[TIL] camp_day9_240425 (1) | 2024.04.25 |
[TIL] camp_day8_240424 (0) | 2024.04.24 |