- Today
1. ADsP 통계분석 - 기초통계
2. SQL 코드카타
3. 알고리즘 코드카타
- Today I Learned
꼭 필요한 몇가지만 작성(복습 목적)
어떤 문제가 발생했고, 어떤 것들을 시도했고, 어떻게 해결해서, 무엇을 새롭게 알게되었는지
SQL
구분자로 구분 한 뒤 문자열 이어주기
CONCAT_WS('구분자',문자열1,문자열2,...)
FROM 절 서브쿼리를 WITH 문으로
SELECT flavor
FROM
(
SELECT *
FROM first_half
UNION
SELECT *
FROM july
) a
GROUP BY flavor
ORDER BY SUM(total_order) DESC
LIMIT 3
이렇게 프롬절에 넣을 서브쿼리를 with 문으로 빼주면 됨!
WITH total AS (
SELECT *
FROM first_half
UNION
SELECT *
FROM july
)
SELECT flavor
FROM total
GROUP BY flavor
ORDER BY SUM(total_order) DESC
LIMIT 3
테이블이 하나 더 생긴 것처럼 취급을 해주기 때문에
with 문으로 쓰면 조금더 편하게 보이는 것 같다.
서브쿼리를 실행하기까지가 너무 오랜시간이 걸려
더 복습하고 여러개의 문제를 풀어보아야 할 것 같다..
UNION 과 UNION ALL 의 차이점
UNION 은 중복값을 제외하고 합쳐준다.
UNION ALL 은 중복값을 포함하여 합쳐준다.
* FROM table1,table2
를 할 경우 아래 행이 아닌 옆으로 붙여준다!(CROSS JOIN)
파이썬
음양 더하기
def solution(absolutes, signs):
answer = 0
if absolutes == signs[1]:
answer += absolutes
return answer
# signs 를 리스트로 만들고 같으면 더해주기~ 를 하려고 했지만 맞지 않게 나왔고..
구글링을 통해서 알아낸 코드
def solution(absolutes, signs):
answer = 0
for i in range(len(absolutes)):
if signs[i]:
answer += absolutes[i]
else:
answer -= absolutes[i]
return answer
# 여기서 주의해야 할 점은 제한 사항 중
" signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수이다 "
absolutes의 길이를 범위에 두고
참(양수) 일때면 absolutes 의 인덱스 위치에 있는 값을 더해준다.
len() 함수는 단순히 길이를 반환해준다고만 생각해서
len(absolutes) 를 해주는 이유가 이해되지 않아 꽤나 헤맸다..
absolutes 인덱스(위치)의 값이 필요하기 때문에 len() 함수를 써준 것!
absolutes=[4,7,12]
signs=[true,false,true]
라고 하면
signs[0] # 0번째 값이 참(양수)일때
absolutes[0] # 0번째 값을 더해준다
지금까지 문제를 풀며 제한사항은 크게 신경을 쓰지 않았는데 앞으로는 주의깊게 봐야겠다.
핸드폰 번호 가리기
def solution(phone_number):
answer = []
answer.replace(phone_number,'*',-4)
return answer
뒤에서 4자리라서 replace 에 -4 를 넣어봤는데
AttributeError: 'list' object has no attribute 'replace'
오류가 떴다.
replace 는 list 에서 사용할 수 없다고 함
phone_number 을 반복해서 *을 하나씩 넣어줘야겠다고 생각했고
def solution(phone_number):
answer = ''
for i in range(phone_number):
answer += '*'
return answer
이렇게 작성했더니
TypeError: 'str' object cannot be interpreted as an integer
또다시 오류 ㅠㅜㅜ
문자열 데이터를 정수형처럼 사용해서 오류발생했다 함
int 로 바꿔주어야 하나해서
for i in range(int(phone_number)):
이렇게했더니
끝도없이 실행을 하고 있더라 ...
phone_number 의 길이만큼 반복해주길 바라기 때문에
len() 함수를 써주었다.
for i in range(len(phone_number)):
여기서! 나는 뒤에 4자리는 제외하고 싶으니까
for i in range(len(phone_number)-4):
이제 뒤에 4자리만 합쳐주면 되겠다
def solution(phone_number):
answer = ''
for i in range(len(phone_number)-4):
answer += '*'
return answer + phone_number[-4:]
완성!!
천천히 풀어보면 될 것인데.. 결국 구글링을 통해서 알아냈다는게 조금 아쉽다 ㅠㅜ
[-4:]
뒤에서 4번째부터~ 끝까지
[:-4]
뒤에서 5번째부터 앞까지
[4:]
5번째부터 끝까지
[:4]
4번째부터 앞까지
- Next
1. ADsP 강의
2. SQL 코드카타
3. 파이썬 코드카타
'TIL' 카테고리의 다른 글
2024-04-11 (0) | 2024.04.11 |
---|---|
2024-04-09 (0) | 2024.04.09 |
2024-04-05 (0) | 2024.04.05 |
2024-04-04 (0) | 2024.04.04 |
2024-04-03 (0) | 2024.04.03 |