반응형

자료구조 및 알고리즘 104

[python] 2960. 에라토스테네스의 체

문제: https://www.acmicpc.net/problem/2960 풀이  이번 문제는 어렵지 않았지만 코드가 조금 지저분하게 작성됐습니다. 시간 제한은 1초로, 이중 for문으로 충분한 시간이라 이중 for문으로 구현했습니다. 그러나, cnt를 셀 때마다 k랑 맞는지 확인하고 break를 걸어주어야 하는 부분 때문에 코드가 지저분해졌고 'if ~' 부분을 반복해서 작성했습니다.  따라서 방향성을 바꿔서 깔끔한 코드로 수정했습니다. 또한 이중for문을 완전히 탈출할 때 if문을 두 번 쓰지 않고, 하단의 코드처럼 else: continue break로 작성해도 됨을 배웠습니다.  - 지저분한 코드n, k = map(int, input().split())num_list = [i for i in ran..

[python] 17478. 재귀함수가 뭔가요 ?

문제:  https://www.acmicpc.net/problem/17478 나는 재귀함수 구현을 헷갈려하는 편인데, 이 문제를 통해 제대로 알길 원한다. 재귀보다 후에 작성한 코드는 재귀가 종료된 후 실행함을 고려하면서 코드를 작성했다.  .join(문자열)은 문자열 사이에 특정 문자를 삽입할 수 있는 함수이다. 이때, 문자열 맨 앞에도 특정 문자를 삽입해야 하기 때문에 문자열에 ""를 추가했다.  def recursive(cnt, n): if cnt == n: string = "____" * cnt text1= [ "", "\"재귀함수가 뭔가요?\"\n", "\"재귀함수는 자기 자신을 호출하는 함수라네\"\n",..

List 대신 Deque를 사용하는 이유 ?

Deque ? 파이썬의 deque는 list와 같이 요소들을 한 곳에 담아두는 배열이다.Stack은 LIFO(Last In First Out)으로, 나중에 들어온 것이 먼저 나가는 형태의 자료구조이다.Queue는 FIFO(First In First Out)으로, 입장 순서대로 나가는 형태의 자료구조이다.Deque는 queue이지만, 양방향인 queue이다. 앞/뒤에서 요소를 추가/삭제 할 수 있다. 왜 List 대신 Deque를 사용하는 것일까 ? List보다 deque의 속도가 빠르기 때문이다.List는 O(N)의 속도를 따르지만, deque는 O(1)의 속도를 따른다.이는 추출한 데이터의 주소에 이전 데이터를 이전하는 작업이 동반되어, 시간 복잡도가 증가하는 것이다. 즉, 연산이 많을 수록 deque..

프로그래머스 - 식품분류별 가장 비싼 식품의 정보 조회하기 (SQL)

https://school.programmers.co.kr/learn/courses/30/lessons/131116 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💬 내가 작성한 SQL 코드 (틀린 코드) # max로 조회하면 해당 컬럼에 대한 값만 나올뿐 행 전체가 나오지 않는다. # 그래서 서브 쿼리로 걸러주고 조회해야한다. SELECT CATEGORY, MAX(PRICE) AS MAX_PRICE, PRODUCT_NAME FROM FOOD_PRODUCT WHERE CATEGORY IN ('과자', '국', '김치', '식용유') GROUP BY CAT..

프로그래머스 - 조건별로 분류하여 주문상태 출력하기 (SQL)

💬 내가 작성한 SQL 코드 SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE,'%Y-%m-%d') AS OUT_DATE, (CASE WHEN OUT_DATE '2022-05-01' THEN '출고대기' ELSE '출고미정' END ) AS 출고여부 FROM FOOD_ORDER ORDER BY ORDER_ID ASC; # 1. 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 출고여부를 조회 # 2. 출고여부는 5월 1일까지 출고완료 # 3. 이 후 날짜는 출고 대기로 미정이면 출고미정으로 출력 # 4. 주문 ID를 기준으로 오름차순 정렬 날짜 비교 문제이다.

프로그래머스 - 조건에 부합하는 중고거래 상태 조회하기 (SQL)

💬 내가 작성한 SQL 코드 SELECT BOARD_ID, WRITER_ID, TITLE, PRICE, (CASE WHEN STATUS = 'SALE' THEN '판매중' WHEN STATUS = 'RESERVED' THEN '예약중' ELSE '거래완료' END) AS STATUS FROM USED_GOODS_BOARD WHERE CREATED_DATE = '2022-10-05' ORDER BY BOARD_ID DESC; # 1. 게시글 ID, 작성자 ID, 게시글 제목, 가격, 거래상태를 조회 # 2. 2022년 10월 5일에 등록된 중고거래 게시물 # 3. 거래상태가 SALE 이면 판매중, RESERVED이면 예약중, DONE이면 거래완료 분류하여 출력 # 4. 게시글 ID를 기준으로 내림차순 정렬..

프로그래머스 - 노선별 평균 역 사이 거리 조회하기 (SQL)

💬 내가 작성한 SQL 코드 SELECT ROUTE, CONCAT(ROUND(SUM(D_BETWEEN_DIST),1),'km') AS TOTAL_DISTANCE, CONCAT(ROUND(AVG(D_BETWEEN_DIST),2), 'km') AS AVERAGE_DISTANCE FROM SUBWAY_DISTANCE GROUP BY ROUTE ORDER BY SUM(D_BETWEEN_DIST) DESC ; # TOTAL_DISTANCE 안됨 ! # 노선별로 노선, 총 누계 거리, 평균 역 사이 거리를 노선별로 조회하는 SQL문을 작성 # 총 누계거리는 테이블 내 존재하는 역들의 역 사이 거리의 총 합 # 총 누계 거리와 평균 역 사이 거리의 컬럼명은 각각 TOTAL_DISTANCE, AVERAGE_DISTAN..

프로그래머스 - 월별 잡은 물고기 수 구하기 (SQL)

💬 내가 작성한 SQL 코드 SELECT COUNT(ID) AS FISH_COUNT, MONTH(TIME) AS MONTH FROM FISH_INFO GROUP BY MONTH HAVING COUNT(ID) is not null ORDER BY MONTH ASC; # 1. 월별 잡은 물고기의 수와 월을 출력 # 2. 잡은 물고기 수 컬럼명은 FISH_COUNT, 월 컬럼명은 MONTH # 3. 월을 기준으로 오름차순 정렬 # 4. 월은 숫자형태 (1~12) 로 출력하며 9 이하의 숫자는 두 자리로 출력하지 않습니다 # 5. 잡은 물고기가 없는 월은 출력하지 않습니다. 날짜 데이터에서 일부만 추출하는 방법은 다음과 같다. * YEAR() / MONTH() /DAY() /HOUR() / MINUTE() / ..

프로그래머스 - 조건에 맞는 사용자와 총 거래금액 조회하기 (SQL)

💬 내가 작성한 SQL 코드 SELECT B.USER_ID, B.NICKNAME, SUM(A.PRICE) AS TOTAL_SALES FROM USED_GOODS_BOARD AS A INNER JOIN USED_GOODS_USER AS B ON A.WRITER_ID = B.USER_ID WHERE A.STATUS = 'DONE' GROUP BY A.WRITER_ID HAVING SUM(PRICE) >= 700000 ORDER BY TOTAL_SALES ASC; # 1. 회원 ID, 닉네임, 총거래금액을 조회 # 2. 완료된 중고 거래 # 3. 총 금액이 70만원 이상 # 4. 총거래금액을 기준으로 오름차순 정렬 먼저 상단의 주석처럼, 조건을 작성하고 이를 코드로 작성해보는 식의 방법이 문제를 빠르고 정확하..

728x90
반응형