알고리즘

    [Level1] 수박수박수박수박수박수?

    programmers.co.kr/learn/courses/30/lessons/12922 코딩테스트 연습 - 수박수박수박수박수박수? 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 programmers.co.kr 내 풀이 def solution(n): answer = '' for i in range(0, n): if i % 2 == 0: answer += '수' else: answer += '박' return answer 다른 사람 풀이 def water_melon(n): return "수박"*(n//2) + "수"*(n%2) .............

    [Level1] 예산

    programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 내 풀이 def solution(d, budget): answer = 0 a = 0 list.sort(d) for i in d: a += i if a budget: break return answer 다른 사람 풀이 def solution(d, budget): d.sort() while budget < sum(d): d.pop() return len(d)

    [Level1] 같은 숫자는 싫어

    programmers.co.kr/learn/courses/30/lessons/12906 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr 내 풀이 def solution(arr): answer = [arr[0], ] j = 0 for i in arr: if answer[j] != i: answer.append(i) j += 1 return answer 다른 사람 풀이 def no_continuous(s): a = [] for i in s: if a[-1:] == [i]: continu..

    [Level1] 폰켓몬

    programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr 내 풀이 def solution(nums): answer = len(nums) / 2 nums = list(set(nums)) if answer < len(nums): return answer return len(nums) 중복을 제거하여 남은 포켓몬의 사이즈가 가져갈 수 있는 포켓몬의 수보다 적으면 가져갈 수 있는 포켓몬의 수가 답이고 그 반대면 중복 제거 후 남아있는 포..

    [Level2] 최솟값 만들기

    programmers.co.kr/learn/courses/30/lessons/12941 코딩테스트 연습 - 최솟값 만들기 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱 programmers.co.kr 내 풀이 def solution(A,B): answer = 0 A.sort() B.sort(reverse = True) for i, v in enumerate(A): answer += v * B[i] return answer 최솟값을 만드는거라 큰값*작은값 + 큰값*작은값 ....... = answer 이다. 문제를 잘... 생각해보자. 다른사람 풀이 d..

    [Level1] 나누어 떨어지는 숫자 배열

    링크 : programmers.co.kr/learn/courses/30/lessons/12910 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하 programmers.co.kr 내 풀이 def solution(arr, divisor): answer = [] for i in arr: if i % divisor == 0: answer.append(i) if len(answer) == 0: answer.append(-1) return sorted(answer) 다른 사람이 푼 풀..