2024-05-09

강대·2024년 5월 9일
post-thumbnail

안녕하세요 ~! 벌써 목요일이네요

오늘은 또 다른 발제가 시작됐습니다 !!
= 해야할 일이 늘었다는 말

발등에 불이 떨어졌으니
열심히 해보자구요 🥵🥵





♾️ SQL 코드카타 풀이


🖌️ 66번 문제 - 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기

USED_GOODS_BOARD와 USED_GOODS_FILE 테이블에서 조회수가 가장 높은 중고거래 게시물에 대한 첨부파일 경로를 조회해주세요.
첨부파일 경로는 FILE ID를 기준으로 내림차순 정렬해주세요.
기본적인 파일경로는 /home/grep/src/ 이며,
게시글 ID를 기준으로 디렉토리가 구분되고, 파일이름은 파일 ID, 파일 이름, 파일 확장자로 구성되도록 출력해주세요.
조회수가 가장 높은 게시물은 하나만 존재합니다.


문제 예시를 보면 'FILE_PATH' 이름으로 컬럼 하나만 출력해야하는 걸 알 수 있습니다
파일 경로에 /home/grep/src/와 파일 ID, 파일 이름, 파일 확장자를 넣어줘야 하기 때문에
concat으로 합쳐줄게요 !!


SELECT 
CONCAT('/home/grep/src/',BOARD_ID,'/',FILE_ID,FILE_NAME,FILE_EXT) AS FILE_PATH
>>  (/home/grep/src/+게시글 ID/+파일ID,파일이름,파일확장자) 묶어주고 별칭 생성
FROM USED_GOODS_FILE >> 첨부파일 정보 테이블 가져오기
WHERE BOARD_ID = (SELECT BOARD_ID FROM USED_GOODS_BOARD ORDER BY VIEWS DESC LIMIT 1)
>> 서브쿼리로 게시판 정보 테이블 불러오고 게시글 id 기준으로 조회수 제일 높은 걸로 하나만 출력
ORDER BY FILE_ID DESC >> 메인쿼리로 돌아와서 파일ID 기준 내림차순 정렬

위와 같이 출력해주시면

한 개만 결과로 출력될 줄 알았지만
join으로 확인해본 결과 게시물 하나에 첨부파일이 2개라서
총 결과 2개 출력된 걸 알 수 있었습니다 !!
이렇게 정답처리 완👍

물론 위 쿼리로 제출하시면 안됩니다





♾️ 알고리즘 코드카타 풀이


🖌️ 9번 문제 - 짝수의 합

정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.


def solution(n):
    answer=0 >> 빈 변수 만들어주기
    for i in range(1,n+1): >> 반복문을 사용해줘서 시작값 1, n에 1 더해주기
        if i % 2 == 0: >> 조건문으로 짝수인 경우에만
            answer += i >> 위 담긴 i값을 answer에 담아주기
    return answer >> 담긴 answer을 return 해주기

이렇게 정답처리 완👍





♾️ 파이썬 복습


  • 반복문 (for문)

이거는 반복문 실제 예시 중 튜터님께서 가장 좋아하는 예시로
가져와봤는데요

true_values = [1, 0, 1, 0, 1] >> 실제 정답값
predicted_values = [0, 0, 1, 0, 1] >> AI모델의 예측값
correct_predictions = 0 >> 빈 변수 만들어주기
for true, pred in zip(true_values, predicted_values):
>> zip 함수를 사용해줘서 2개의 리스트를 한 번에 계산 가능하도록 만들어주기
> true = 실제 정답값 리스트
  pred = AI모델 예측값 리스트
    if true == pred: >> 만약 정답값, 예측값이 동일하다면
        correct_predictions += 1 >> 빈 변수 안에 1씩 추가해줘
accuracy = correct_predictions / len(true_values)
>> 두 개의 리스트의 비교를 마친 빈 변수의 값과 정답값으로 평균 내기
를 accuracy라는 변수에 담기
print("Accuracy:", accuracy) >> accuracy로 최종 평균 출력

이게 원본 예시였구요
최대한 저도 쉽게 이해하려고 말을 많이 풀어서 설명해봤어요 !!


예시대로 출력해보면
백분율이 아니라 4 나누기 5이기 때문에 0.8이라 출력 되구요

두번째로는 보기 쉽게 마지막 출력에서 *100으로 백분율을 해주면
80이라고 뜨는데
이걸 소수점 없이 정수처리로 또 바꿔주면 ?!

세번째 예시에는 실제값과 예측값이 동일 했을 경우로 만들어줬어요

int를 써주고 백분율 처리를 해주면 깔끔하게 100으로 출력이 됐네요 😊



  • 반복문 (while문)

while문은 기본사양(?) 자체가 참일 때만 출력됩니다
그렇기 때문에 조건을 걸어줄 때 참과 거짓이 구분되게 만들어주고
거짓이 되는 경우 반복이 멈춥니다 !!
이는 거짓이 될 때까지 반복하기 때문에
잘못하면 무한 반복이 됩니다

그렇기 때문에 제가 마지막으로 빨간색으로 그어준
i += 1을 해주지 않으면 무한 반복 됩니다 !!!!




  • 함수

함수라는 게 참 .. 어려운데요
아무튼 그림으로 코드를 하나 씩 따져보면 !

def greet(name): >> 변수 안에 이름이 들어갈 것을 준비
    message = "Hello, " + name + "!" >> 출력될 메시지 구조
    return message >> 출력될 결과값
greeting = greet("Alice") >> 변수에 엘리스 라는 이름 넣어주기
print(greeting) >> 마지막으로 쓴 변수값 써주기

그치만 !! 여기서 !!
만약에 return이 없다면 ?!?!?!?

아무것도 나오지 않습니다......
아무리 모든 변수 안에 값을 입력해주더라도
리턴은 결과값을 출력해주기 때문에 없으면 안됩니다
그냥 그런 줄 아세요








오늘은 파이썬을 복습해봤지만
데이터 전처리+시각화 세션이 시작되었습니다!

파이썬 강의 얼른 마무리 복습하고
데이터 전처리 강의로 완강 갈기겠습니다
내일 봬요 💨💨💨

profile
걍 달려

0개의 댓글