본문 바로가기

Programming/Python35

[프로그래머스 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.
[프로그래머스 Python] 기사단원의 무기 💡문제 설명💡입출력 예시  💡풀이def solution(number, limit, power): # 약수 개수를 저장할 리스트 초기화 ls2 = [0] * (number + 1) # 각 숫자의 약수 개수 계산 # 외부 루프 : i 가 1부터 numbrer 까지 각 숫자를 순회 # 내부 루프 : j 가 i부터 i의 배수인 숫자를 순회 for i in range(1, number + 1): for j in range(i, number + 1, i): ls2[j] += 1 # 결과 계산 result = [power if l2 > limit else l2 for l2 in ls2[1:]] answer = sum(result) .. 2024. 7. 24.