본문 바로가기

Python

(36)
프로그래머스 - 과일 장수 문제 https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 def solution(k, m, score): answer = 0 score.sort(reverse = True) for i in range(len(score) // m): box = score[m*i:m*(i+1)] answer += min(box)*m return answer 과일은 박스단위로만 판매할 수 있고 박스로 구성할 수 없으면 버리므로 내림차순으로 정렬한 뒤, 박스갯수로..
프로그래머스 - 가운데 글자 가져오기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12903 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 def solution(s): answer = '' mid_index = int(len(s) / 2) if len(s) % 2 == 0: answer = s[mid_index-1:mid_index+1] else: answer = s[mid_index] return answer 중간 index를 구한 뒤, s 문자열의 길이가 짝수인지 홀수인지 판단한다. 짝수면 가운데 2글자를 슬라이싱해서..
프로그래머스 - 두 개 뽑아서 더하기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/68644 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 def solution(numbers): answer = [] for i,num in enumerate(numbers): for j in range(i+1, len(numbers)): sum = num + numbers[j] if sum not in answer: answer.append(sum) return sorted(answer) 리스트의 처음 인덱스부터 기준 인덱스로 두고 기준 ..
프로그래머스 - 하샤드 수 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12947 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 def solution(x): answer = True total = 0 for s in str(x): total += int(s) if x % total != 0: answer = False return answer 각 자리수의 합을 구한다. 주어진 수 x가 total로 나누어지지 않으면 False를 반환한다.
프로그래머스 - 이상한 문자 만들기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12930 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 첫번째 풀이 def solution(s): answer = '' wordIndex = 0 for word in s: if word == ' ': answer += ' ' wordIndex = 0 else: if wordIndex % 2 == 0: answer += word.upper() else: answer += word.lower() wordIndex += 1 return answe..
프로그래머스 - 나누어 떨어지는 숫자 배열 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12910 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 def solution(arr, divisor): answer = sorted(list(filter(lambda x: x % divisor == 0, arr))) if len(answer) == 0: answer = [-1] return answer filter(function, iterable) function: iterable의 매 요소마다 실행할 함수 iterable: 필터할 it..
프로그래머스 - 문자열 내 마음대로 정렬하기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12915 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 def solution(strings, n): answer = sorted(strings, key = lambda x: (x[n], x)) return answer sorted 메서드를 사용해서 원본 배열은 그대로 두고 새로운 배열을 만들어서 answer에 할당한다. sorted 메서드 2번째 인자로, 정렬 기준을 추가해줄 수 있다. key 인자로 비교함수를 넣어주면 되는데, lambd..
프로그래머스 - 자연수 뒤집어 배열로 만들기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12932 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 def solution(n): answer = [] for i in reversed(str(n)): answer.append(int(i)) return answer reversed 메서드를 사용하여 문자열을 역순으로 바꾼뒤 앞에서 부터 하나씩 answer 배열에 추가한다.