본문 바로가기

프로그래머스8

[프로그래머스 Python] 문자열 나누기 💡문제 설명 및 예시 문제는 주어진 문자열을 특정 규칙에 따라 여러 개의 부분 문자열로 분해하고, 그 개수를 반환하는 것입니다. 다음과 같은 과정을 따릅니다:문자열의 첫 글자(x)를 기준으로 설정합니다.문자열을 왼쪽에서 오른쪽으로 읽어가며 x의 등장 횟수와 x가 아닌 글자의 등장 횟수를 세어 갑니다.두 횟수가 같아지는 순간을 찾아 그 지점까지의 부분 문자열을 분리합니다.분리된 부분을 제외한 나머지 문자열에 대해 위 과정을 반복합니다.남은 문자열에 더 이상 글자가 없거나 두 횟수가 같아질 때까지 계속 분리합니다.최종적으로 분해된 문자열의 개수를 반환합니다.예를 들어 "banana"는 "ba", "na", "na"로 분해되며, 결과적으로 3개의 부분 문자열로 나뉩니다.💡작성코드 1 (정답)def solu.. 2024. 8. 7.
[프로그래머스 Python] 체육복 💡문제 설명 및 예시 학생 번호는 체격 순으로 매겨져 있으며, 체육복을 도난당한 학생들과 여벌 체육복을 가진 학생들이 주어집니다.여벌 체육복을 가진 학생은 바로 앞번호나 뒷번호 학생에게만 체육복을 빌려줄 수 있습니다.공통적으로 도난당했지만 여벌을 가진 학생은 우선적으로 제거합니다.남은 여벌 체육복을 가진 학생들이 도난당한 학생들에게 체육복을 빌려줍니다.최대한 많은 학생이 체육수업을 들을 수 있도록 하여 최종적으로 수업을 들을 수 있는 학생 수를 반환합니다.💡작성코드 1 (오답)1. 정렬 : lost와 reserve 배열을 정렬하여 번호 순서대로 정렬합니다. 2. 공통 요소 제거: reserve 배열을 순회하면서, 만약 해당 번호가 lost 배열에도 있다면, 두 배열에서 모두 제거합니다. 이는 여벌 체.. 2024. 8. 6.
[프로그래머스 Python] 숫자 짝꿍 💡문제 설명 및 예시  한줄 요약 : 두 정수 X와 Y에서 공통으로 나타나는 숫자들을 이용해 만들 수 있는 가장 큰 정수를 반환하는 함수를 구현하세요. 없다면 "-1", 0으로만 이루어져 있으면 "0" 반환 💡작성코드 1# >def solution(X, Y): answer = [] X_list = list(X) Y_list = list(Y) for x in X_list : if x in Y_list : answer.append(x) Y_list.remove(x) # remove() : 리스트에서 첫 번째로 나오는 x를 삭제 if len(answer) != 0 : answer.sort(reverse=True).. 2024. 8. 2.
[프로그래머스 SQL 고득점 kit] 그룹별 조건에 맞는 식당 목록 출력하기 💡문제 설명💡문제 MEMBER_PROFILE와 REST_REVIEW 테이블에서 리뷰를 가장 많이 작성한 회원의 리뷰들을 조회하는 SQL문을 작성해주세요. 회원 이름, 리뷰 텍스트, 리뷰 작성일이 출력되도록 작성해주시고, 결과는 리뷰 작성일을 기준으로 오름차순, 리뷰 작성일이 같다면 리뷰 텍스트를 기준으로 오름차순 정렬해주세요. 💡예시 💡풀이 SELECT A.MEMBER_NAME, B.REVIEW_TEXT, DATE_FORMAT(B.REVIEW_DATE, "%Y-%m-%d") AS REVIEW_DATEFROM MEMBER_PROFILE A join REST_REVIEW B USING (MEMBER_ID)WHERE A.MEMBER_ID = (SELECT MEMBER_ID .. 2024. 7. 22.