전체 글

데이터 엔지니어를 희망하는 개발자 지망생
Algorithem/백준 PS with code

백준 #1522 - [S1] 문자열 교환 : 투포인터

(python3) 1522번: 문자열 교환 a와 b로만 이루어진 문자열이 주어질 때, a를 모두 연속으로 만들기 위해서 필요한 교환의 회수를 최소로 하는 프로그램을 작성하시오. 이 문자열은 원형이기 때문에, 처음과 끝은 서로 인접해 www.acmicpc.net 아이디어 어딘가에 a를 다 뭉쳐놔야합니다. a를 뭉쳐놓을 위치 안에 있는 b를 밖에 있는 a와 교환해주면 됩니다. 즉 보고있는 위치 안의 b의 개수를 세는 것이 교환 최소 횟수가 됩니다. a를 뭉쳐놓을 수 있는 모든 위치에 대해 위 과정을 수행합니다. abababababa : a가 총 6개 (ababab)ababa : 괄호 안에 a를 뭉쳐넣을것. 괄호의 길이 = 6. 괄호 안의 b를 밖으로 다 빼려면 3번 교환하면 됨. a(bababa)baba :..

[독서 일기] 함께 자라기

23.07.06 고작 50페이지 읽었는데 벌써 띵하다. 여러가지 생각을 해보게 되는 책이었다. 막연하게 생각하던 똑똑하게 성장하기의 구체적인 방법들을 여러 통계를 바탕으로 명확하게 제시해준다. 똑똑하게 학습했을 때 혼란스럽던 머리에 많은게 착착 정리되면 느껴지는 후련함 같은게 있다. 뇌를 감싸고 있는 불투명한 껍질들이 도마뱀이 허물 벗듯 벗겨지는 느낌이랄까? 그 눈앞이 시원해지는 듯 새롭게 태어나는 기분이 엄청난 쾌감을 주는데.. 그땐 정말 가속도가 붙는 학습, 어제의 나와는 달라진 어떤 지점이 느껴진다. 그 감각을 느꼈던 학습이 어떻게 이루어질 수 있는지 책에서 설명해준다. "최고 수준의 퍼포먼스를 내는 사람들은 특별한 방식이 있다." ABC 업무가 기억에 남는다. A는 실행적 업무, B는 업무를 개선..

SQL/프로그래머스 MySQL with code

프로그래머스 MySQL : [lv.4] 취소되지 않은 진료 예약 조회하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 3개 테이블 join inner join 해서 해결해주면 됩니다. date 컬럼의 경우 연월일만 나오도록 포맷을 맞춰주고 = 으로 비교합니다. 쿼리문 SELECT A.apnt_no, P.pt_name, P.pt_no, A.mcdp_cd, D.dr_name, A.apnt_ymd FROM PATIENT P JOIN APPOINTMENT A ON P.pt_no = A.pt_no JOIN DOCTOR D ON A.mddr_id = D.dr_id WHERE A.mcdp_cd = 'CS' AND A.apnt_cncl_..

SQL/프로그래머스 MySQL with code

프로그래머스 MySQL : [lv.3] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 매우 다양한 풀이 대여중이 하나라도 있는 차량은 대여중을 출력해야합니다. 이 부분을 해결하기가 어려웠는데요, 정말 다양한 해결방법이 있었습니다. 좋은 풀이들부터 소개하겠습니다. group by, max/min, if, in, case 를 잘 활용하면 쿼리문이 확 압축됩니다. IN절 서브쿼리, DISTINCT, BETWEEN, GROUP BY 없음 SELECT DISTINCT CAR_ID, IF(CAR_ID IN (SELECT DISTINCT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_..

Algorithem/백준 PS with code

백준 #2531 - [S1] 회전 초밥 : 두포인터

(python3) 2531번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 30,000, 2 ≤ d ≤ 3,000, 2 ≤ www.acmicpc.net 두포인터 혹은 슬라이딩 윈도우 윈도우 길이를 k로 유지하고 옆으로 한칸씩 이동시키면서 먹을 수 있는 가짓수를 확인합니다. 이 문제의 파이썬 풀이 10등이네요~ 와~ 디테일한건 코드 주석으로 남기겠습니다. 코드 import sys def solution(input) : N,d,k,c = list(map(int,input().split())) sushi = [int(input().strip()) for _ i..

SQL/프로그래머스 MySQL with code

프로그래머스 MySQL : [lv.4] 년, 월, 성별 별 상품 구매 회원 수 구하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr DISTINCT, JOIN, GROUP BY YEAR, MONTH, GENDER 3개의 필드들로 GROUP BY 를 수행해야 합니다. 유저 수를 세는 부분에서는 DISTINCT 로 같은 유저는 한번만 카운팅할 수 있도록 합니다. JOIN 은 기본적인 inner join 으로 처리해주면 됩니다. 쿼리문 SELECT YEAR(sales_date) AS YEAR, MONTH(sales_date) AS MONTH, A.gender AS GENDER, COUNT(DISTINCT A.user_id) AS USERS ..

jamong5
JAMONG5