전체 글53 OSI 7 계층 OSI 7 계층이란?OSI 7 계층은 네트워크 통신의 흐름을 단계적으로 설명하는 모델로, 각 계층은 데이터 전송 과정에서 특정 역할을 수행합니다. OSI 7 계층, 왜 필요할까?각 계층이 독립적인 역할을 수행함으로써 복잡한 통신 과정을 단순화하고, 문제 발생 시 원인이 되는 계층을 특정 지어 해당 부분만 진단하여 해결하면 되기 때문이다. +) 네트워크의 다양한 기능들을 하나의 프로토콜로 구현하기 어렵기 때문에 모듈화 하기 위함. OSI 7 계층 단계각 계층은 다음과 같다.+ ) 각 계층의 프로토콜은 하위 계층의 프로토콜이 제공하는 기능을 사용하여 동작한다.7 Layer Application Layer (응용 계층)6 Layer Presentation Layer (표현 계층)5 Layer Sessio.. 2024. 11. 28. [백준 3190번 뱀] 오늘의 문제는 뱀이다. 처음엔 무조건 완전탐색! 시간제한과 입력의 범위를 보아하니 시간적으로는 문제가 없을 것 같았다.구현을 어떻게 하는가가 이번 문제의 관건!일단 사과의 자리를 표현해 줄 map [ ][ ]과 뱀의 존재유무를 따질 visited [ ][ ]를 생각했고,뱀의 꼬리자리좌표를 ed[ ], 머리좌표를 st [ ], 뱀이 지나간 곳을 담아줄 Queue q 정도 생각했다.또한 걸린 시간(답안)을 sec배열에 담아주었고 방향을 dr [ ], dc [ ], way(인덱스용)으로 파악해 주었다.뱀의 방향은 idx와 시간 arr, 방향 arr 이렇게 3가지로 파악 및 갱신해 주었다. 글을 읽고 구현을 시작했다!코드는 다음과 같다.( 코드가 너무 커 보인다면 "Ctrl + 스크롤 내리기" 하면 잘 보.. 2024. 11. 28. 노선별 평균 역 사이 거리 조회하기 이번 문제는 다 잘 풀고, 테스트 케이스까지 맞는데 제출만 하면 틀렸다고 나오는다소 답답한 문제였다..문제를 아무리 읽어봐도 이유를 모르겠어서 찾아보게 되었다. 일단 틀린 경우의 코드부터 확인해보자. SELECT ROUTE,CONCAT(ROUND(SUM(D_BETWEEN_DIST), 1), 'km') AS TOTAL_DISTANCE,CONCAT(ROUND(AVG(D_BETWEEN_DIST), 2), 'km') AS AVERAGE_DISTANCEFROM SUBWAY_DISTANCEGROUP BY ROUTEORDER BY TOTAL_DISTANCE DESC; 이 경우의 문제점이 ORDER BY에서 정렬을 해줄 때, TOTAL_DISTANCE가ROUND(SUM(D_BETWEEN_DIST), 1)과 'km'가 .. 2024. 10. 23. 자동차 평균 대여 기간 구하기 ( 프로그래머스, Lv.2, MySQL ) 이번 문제는 프로그래머스의 Lv2문제인 자동차 평균 대여 기간 구하기이다.이번 문제에서 내가 막힌 부분은 바로날짜 간의 차이를 구하는 법!!!처음에 작성했던 코드를 확인해 보자! SELECT CAR_ID, ROUND(AVG(END_DATE - START_DATE + 1), 1) AS AVERAGE_DURATIONFROM CAR_RENTAL_COMPANY_RENTAL_HISTORYGROUP BY CAR_IDHAVING AVERAGE_DURATION >= 7ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC; 그냥 END_DATE에서 START_DATE를 빼주면 그 차이가 계산될 거라 생각했다.하지만 다른 결괏값이 나왔고, 이를 해결하기 위해서는 DATEDIFF 함수가 필요했다... 2024. 10. 17. 연도 별 평균 미세먼지 농도 조회하기 좌로 보나 우로보나,, 조회값도 똑같은데 틀렸다고만 나와 답답해서 검색을 했다..그 결과 늘 주어지는 칼럼의 타입이 DATETIME이었어서DATE_FORMAT () 함수를 통해 날짜를 알아왔었는데이번 문제는 DATE이기 때문에 SELECT 할 때, DATE_FORMAT() 함수가 아닌YEAR() 함수를 사용했어야 했다.. 틀린 코드를 먼저 보자. SELECT DATE_FORMAT(YM, '%Y') AS YEAR, ROUND(AVG(PM_VAL1), 3) AS 'PM10', ROUND(AVG(PM_VAL2), 3) AS 'PM2.5'FROM AIR_POLLUTIONWHERE LOCATION2 = '수원'GROUP BY YEARORDER BY YEAR; DATE_FORMAT() 함수는 해당 부분을 문자열로 .. 2024. 10. 10. 특정 단위별 컬럼 그룹화 하기 이번 문제는 "가격대 별 상품 개수 구하기" 이다.문제를 읽고 어..? 내가아는 CASE 방법으로는 지정된, 즉 정적으로밖에 정해주지 못하는데동적으로 어떤 가격이라도 1만원 단위로 나눠서 조회하는건 어떡하지? 이에 검색을 해본 결과 처음보는 방법을 만났다..! 코드로 답을 먼저 확인해보자.SELECT FLOOR(PRICE / 10000) * 10000 AS PRICE_GROUP, COUNT(*) AS PRODUCTSFROM PRODUCTGROUP BY PRICE_GROUPORDER BY PRICE_GROUP;모든 가격을 FLOOR함수를 통해 / 10000 하여 몇만원인지만 남기고 다시 1만을 곱해1만 단위로 그룹화를 시켜준다. 그리고 COUNT함수로 PRODUCTS의 개수를 세어주면 끝! 2024. 10. 10. ORDER BY 컬럼 우선순위 설정 이번 문제는"고양이와 개는 몇 마리 있을까" 이다. 이 문제는 처음부터 맞긴했다.코드는 다음과 같다.SELECT ANIMAL_TYPE, COUNT(*) AS countFROM ANIMAL_INSGROUP BY ANIMAL_TYPEORDER BY ANIMAL_TYPE; CAT 이랑 DOG만 있지 않았다면..? 이 코드만으로 항상 정답일 것 같지 않았다.찾아본 결과 다음과 같은 방법으로 이 문제를 해결할 수 있었다. SELECT ANIMAL_TYPE, COUNT(*) AS countFROM ANIMAL_INSGROUP BY ANIMAL_TYPEORDER BY CASE WHEN ANIMAL_TYPE = 'CAT' THEN 1 WHEN ANIMAL_TYPE = 'DOG' THEN.. 2024. 10. 10. ORDER BY의 alias가 문자열 일 때 ( MySQL ) 프로그래머스의"진료과별 총 예약 횟수 출력하기"를풀이하던 도중 아무리 봐도 맞은것 같은데 틀렸다는 결과를 받아 검색을 시작했다.. 일단 틀린 코드를 보자.SELECT MCDP_CD AS "진료과코드", COUNT(*) AS "5월예약건수"FROM APPOINTMENTWHERE DATE_FORMAT(APNT_YMD, '%Y-%m') = '2022-05'GROUP BY MCDP_CDORDER BY "5월예약건수", "진료과코드" 문제에서 요구하는 조건들을 모두 작성한 것 같은데 계속 틀렸었다..그 이유는? MySQL에서는 큰따옴표(")를 지원하지 않는다고 한다..해결방법은 간단했다. 큰따옴표(") 자리에 백틱(`, 탭버튼 위, 1버튼 왼쪽에 있는 친구다)를 넣어주면 되는것 ! 정답 코드를 확인해보자.SELE.. 2024. 10. 10. GROUP BY 컬럼의 특정 자리로 하기 프로그래머스 SQL문제 중"카테고리 별 상품 개수 구하기"를풀이하는 도중 다음과 같은 문제에 직면하였다. 어..? 특정 컬럼으로 GROUP BY 묶어줄 순 있지만 해당 컬럼의"앞 2자리"로만 ,,? 어떡하지? 방법은 다음과 같다.SELECT LEFT(PRODUCT_CODE, 2) AS CATEGORY, COUNT(*)FROM PRODUCTGROUP BY CATEGORY; LEFT 함수를 통해 PRODUCT_CODE의 앞 2자리만 뽑아주고 CATEGORY라고 명명해준다.그리고 이를 토대로 GROUP BY 해주면 끝! 끝에서 몇 자리는 RIGHT함수를 사용하면 될것같다 ! 2024. 10. 10. 이전 1 2 3 4 5 6 다음