Algorithem/프로그래머스 PS with code

Algorithem/프로그래머스 PS with code

프로그래머스 MySQL : [lv.4] 저자 별 카테고리 별 매출액 집계하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 여러 필드 기준 GROUP BY, 삼중 JOIN, date필드에 조건 걸기 3개의 테이블을 조인해서 해결합니다. 여러 필드 기준으로 ORDER BY 하듯 , 로 연결해서 여러 필드 기준으로 GROUP BY를 할 수 있습니다. YEAR이나 DATE, LIKE 등으로 date 필드 조건을 걸어줍니다. 쿼리문 SELECT a.AUTHOR_ID, a.AUTHOR_NAME, b.CATEGORY, SUM(bs.SALES*b.PRICE) AS TOTAL_SALES FROM BOOK_SALES bs JOIN BOOK b ..

Algorithem/프로그래머스 PS with code

프로그래머스 MySQL : [lv.1] 자동차 대여 기록에서 장기/단기 대여 구분하기

DATEDIFF, CASE, MONTH 날짜의 차를 구할때는 DATEDIFF로 구해야한다. 단순히 빼버리면 10진수 뺄셈으로 결과가 나온다. rent_type의 경우 CASE문으로 처리해주고, 9월을 select 하는건 MONTH로 해결할 수 있다. 쿼리문 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, CASE WHEN DATEDIFF(end_date, start_date)+1 >= 30 THEN '장기 대여' ELSE '단기 대여' END AS RENT_TYPE FROM CAR_RENTAL_COMPANY_RENTAL_HIST..

Algorithem/프로그래머스 PS with code

[python3] [1차] 프렌즈4블록 lv.2

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이디어 1. 입력값 구조 바꾸기 처음에 맵은 행단위로 들어옵니다. [1행,2행,3행 ... ] 블록이 사라진 빈칸을 채울때 열단위로 떨어지기 때문에 열단위로 형태를 바꿔주었습니다. [1열,2열,3열 ...] 이때 상부에서 하부로 블록이 떨어지기 때문에 하단부를 인덱스 0으로 설정해주었습니다. 단순하게 말하면 입력을 시계방향으로 90도 돌려주었습니다. 2. 같은 모양 삭제하고 아래로 밀기 구체적인 구현 과정은 다음과 같습니다. 1) 4개가 똑같은 경우 좌상단의 좌표들을 저장 (한꺼번에 뿅 사라져야하므로 이 순..

Algorithem/프로그래머스 PS with code

[python] [3차] 파일명 정렬 lv.2

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이디어 files 배열로 들어오는 파일명을 커스텀한 기준으로 정렬해주면 됩니다. filename_split 함수에서 원하는 방식으로 문자열을 head와 number로 쪼개면서 형변환을 해주었고 그걸 기준으로 오름차순 정렬해주었습니다. 파이썬은 sorted가 범용적으로 사용하기에 매우 편하게 되어있습니다. 사용성 면에서 정말 설계가 잘 된 언어라는게 종종 느껴집니다. [sort] 파이썬에서 커스텀한 기준으로 이터러블한 객체 정렬하기 key 파이썬에서 제공하는 sorted 기능은 key 파라미터로 커스텀한 기준..

Algorithem/프로그래머스 PS with code

[python3] 퍼즐 조각 채우기 lv.3 : 구현

빡센 구현이었습니다... 이거보다 쉽게 풀 수 있는 방법이 있을 것 같은데.. 다른 분들의 코드는 추후에 구경하도록 하겠습니다. 아이디어 구현이 복잡한만큼 수도코드를 꼼꼼하게 작성해서 함수를 잘 나눠서 사용할 필요가 있을 것 같습니다. 제가 접근한 단계는 다음과 같습니다. game_board 와 table 에서 각각 블록을 추출하여 배열에 담는다. 판에서 dfs를 돌면서 추출한다. game_board는 0을 추출, table 은 1을 추출해야하므로 함수화하면서 추출 숫자를 지정할 수 있게 한다. output : [블룩1, 블록2, ... ] 블록1 = [좌표1, 좌표2, ... ] 블록의 좌표들을 그 블록에 꼭 맞는 가로세로를 가진 직사각형 맵 위에 있는 것 처럼 좌표를 수정한다. table의 블록들을 ..

Algorithem/프로그래머스 PS with code

[python3] 괄호 회전하기 lv.2

모든 로테이션을 돌려서 직접 확인해봐도 시간초과가 나지 않는다. N = 1000, O($N^2$) 풀이 1) 스택 괄호문자열인지 확인하기 위해서는 스택으로 풀면 된다. from collections import deque def solution(s): d = deque(s) cnt = 0 for i in range(len(s)) : stack = [] for c in d : if not stack : stack.append(c) continue if c == ')' and stack[-1] == '(' : stack.pop() elif c == '}' and stack[-1] == '{' : stack.pop() elif c == ']' and stack[-1] == '[' : stack.pop() el..

jamong5
'Algorithem/프로그래머스 PS with code' 카테고리의 글 목록