전체 글198 SQL공부 feat. 프로그래머스 (5) (Level 3) JOIN에 대해 알아보자 RDB의 특징인 관계를 맺어주어 다른 테이블의 값을 가져올수있는 JOIN JOIN의 종류 출처: https://hongong.hanbit.co.kr/sql-기본-문법-joininner-outer-cross-self-join/ 위 출처를 대강 훑고 오면, 기초적인 JOIN은 INNER JOIN임을 알게 된다. INNER JOIN 기초적인 JOIN의 디폴트 방식이다. A, B 테이블의 교집합을 구한다. LEFT OUTER JOIN 차집합을 구할때 쓰인다. LEFT OUTER JOIN LEFT OUTER JOIN을 활용해 나는 가지고 있지만 다른 테이블엔 없는 애를 찾고 싶다. 아래가 그 코드 SELECT * FROM A a LEFT JOIN B b ON a.KEY = b.KEY WH.. 2023. 3. 21. SQL공부 feat. 프로그래머스 (4) (CASE-WHEN-ELSE-END) CASE WHEN ELSE END 중성화 여부 파악하기 링크: https://school.programmers.co.kr/learn/challenges?order=acceptance_desc&statuses=unsolved&levels=1%2C2&languages=mysql -- 코드를 입력하세요 SELECT animal_id, NAME, ( CASE WHEN sex_upon_intake LIKE "neutered%" OR sex_upon_intake LIKE "spayed%" THEN "o" ELSE "x" END ) AS 중성화 FROM animal_ins ORDER BY animal_id; 조건에 부합하는 중고거래 상태 조회하기 링크: https://school.programmers.co.kr/le.. 2023. 3. 19. SQL공부 feat. 프로그래머스 (3) (JOIN - ON, GROUP BY - HAVING) JOIN - ON -- 코드를 입력하세요 SELECT A.FLAVOR FROM FIRST_HALF AS A JOIN ICECREAM_INFO AS B ON A.FLAVOR = B.FLAVOR WHERE A.TOTAL_ORDER > 3000 AND B.INGREDIENT_TYPE = 'fruit_based' ORDER BY TOTAL_ORDER DESC 조건에 부합하는 중고거래 댓글 조회하기 SELECT B.TITLE, B.BOARD_ID, R.REPLY_ID, R.WRITER_ID, R.CONTENTS, DATE_FORMAT(R.CREATED_DATE, "%Y-%m-%d") AS CREATED_DATE FROM USED_GOODS_BOARD AS B JOIN USED_GOODS_REPLY AS R ON .. 2023. 3. 19. [Express.js] 1주차 중간점검 [Express.js] 1주차 회고 Express.js 백엔드에 대해 제대로 아는것이 없는 상태에서 무작정 만들면서 배우기 시작한지 1주일차. 이번주엔 무엇을 배웠나..? 기본적인 CRUD… 이전에… 세팅부터 (PostgreSQL, RDS, Raw Query) CRUD 자체는 FE 하면서도 많이 해본것이라 큰 어려움은 없었다. 다만 강의, 공식문서와 환경이 똑같지 않아 환경설정 등에서 어려움을 겪었고, 예기치 못한 에러들을 많이 만나는 경험을 했다. 특히 connect-redis 를 버젼 다운하며 해결했던 문제는 정말… 지금 생각해도 황당하다. ㅎㅎ 제로초님 에선 Sequelize를 사용하는데, 개인적으론 Raw Query를 연습하면서 익숙해지고 싶다는 생각에 SQL문을 직접 사용하기로 했다. Postg.. 2023. 3. 12. [Python] (프로그래머스 Level 3) 이중우선순위큐 [Python] (프로그래머스 Level 3) 이중우선순위큐 내 풀이 from heapq import heapify, heappush, heappop, nlargest def solution(operations): heap = [] heapify(heap) for operation in operations: [char, value] = operation.split(' ') if char == 'I': heappush(heap, int(value)) else: if len(heap) > 0: if value == '1': heap = nlargest(len(heap), heap)[1:] heapify(heap) else: heappop(heap) if heap: .. 2023. 2. 12. [Python] (프로그래머스 Level 2) 더 맵게 [Python] (프로그래머스 Level 2) 더 맵게 내 풀이 import heapq def solution(scoville, K): heap = scoville heapq.heapify(scoville) count = 0 while True: min_val = heapq.heappop(heap) if min_val >= K: return count if len(heap) < 1: return -1 min_val2 = heapq.heappop(heap) heapq.heappush(heap, min_val + min_val2 *2) count += 1 return count JS로 공부할 때 Heap 구현은 해보았지만… 사용해서 문제를 풀어볼 엄두는 안나던데, python으로 하니 간단하게 import .. 2023. 2. 12. M사 코테 후기, 기록 (23.02.12) 코테 후기 m사 코테를 봤다. 구현 문제 3개가 나왔는데, 난이도는 그렇게 어렵지 않았다. 프로그래머스로 따지면 Level 1, 3개라고 보면될듯. 3시간 20분이 주어졌는데, 1시간30분 정도에 끝낸것 같다. 사실 제출하면 끝인줄 모르고 프로그래머스처럼 테케 더 보고싶어서 제출누르자마자 더이상 변경이 불가해서 당황스럽더라… 아쉽게도 처음으로 푼 문제는 0점을 맞았다… 다른 문제들에 비해 좀 더 경솔하게 제출을 눌러서 그런것 같다. Codility에서 쳐서 점수를 바로 알려줬는데 결과는 생각보다 못나왔다… 구현 3문제인걸 보니 스타트업은 확실히 어려운 알고리즘을 원하기보단 실제로 구현하고 일할 수 있는 사람인지 확인하는 것 같다. (일정 내에 구현을 마무리 할 수 있는 기본적인 코딩을 할 줄 아는지) 앞.. 2023. 2. 12. SQL문 연습 with 프로그래머스 (2) (MySQL) SUM(), AVG(), ROUND(), TRUNCATE() SELECT ROUND(AVG(DAILY_FEE),0) AS AVERAGE_FEE FROM CAR_RENTAL_COMPANY_CAR WHERE CAR_TYPE = 'SUV' AVG() : 평균 SUM() : 합 ROUND( , ) : 반올림 TRUNCATE() : 내림 DATEDIFF() DATEDIFF(날짜1, 날짜2) : 날짜1 - 날짜2 SELECT HISTORY_ID, CAR_ID, DATE_FORMAT(START_DATE, '%Y-%m-%d') AS START_DATE, DATE_FORMAT(END_DATE, '%Y-%m-%d') AS END_DATE, IF(DATEDIFF(END_DATE, .. 2023. 2. 11. SQL문 연습 with 프로그래머스 (1) (MySQL) SQL문 with 프로그래머스 문제 답 (1) SQL문을 연습해보았다. 공부방법은 프로그래머스 문제를 쉬운 문제 부터 풀면서 모르는 문법을 하나씩 체크하고 익혀나가는 것 Level 1 수준 (JOIN 이전 간단한 쿼리문) SELECT -- 코드를 입력하세요 SELECT FACTORY_ID, FACTORY_NAME, ADDRESS FROM FOOD_FACTORY WHERE ADDRESS LIKE '강원도%' ORDER BY FACTORY_ID FACTORY_ID FACTORY_NAME ADDRESS FT19980003 (주)맛있는라면 강원도 정선군 남면 칠현로 679 FT20100003 (주)맛있는음료 강원도 원주시 문막읍 문막공단길 154 FT20100004 (주)맛있는국 강원도 평창군 봉평면 진조길 2.. 2023. 2. 8. [React.js] useCallback 예시 useCallback에 대해 질문이 들어와서 예시를 만들어 주면서 답변을 해주었는데, 짧게나마 적은 코드가 아까워서 블로그에 남깁니다. const message = 'hi'; function UseCallBackExample() { const [, renderingBtn] = useState(0); const noMemo = () => console.log('hi'); const yesMemo = useCallback(() => console.log(message), [message]); useEffect(() => { console.log('no memo called'); }, [noMemo]); useEffect(() => { console.log('.. 2023. 2. 4. 이전 1 2 3 4 5 ··· 20 다음 more