(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는 업무를 개선..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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_..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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_..
(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..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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 ..