본문 바로가기

Algorithm/프로그래머스101

[프로그래머스] Lv1 - 같은 숫자는 싫어 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/12906 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr def solution(arr): answer = [arr[x] for x in range(len(arr)) if arr[x:x+1] != arr[x+1:x+2]] return answer 풀이 슬라이싱은 범위를 벗어나도 오류가 나지 않는 것을 이용 1. 다음 숫자와 현재 숫자가 다르다면 리스트에 추가 2. 해당 리스트를 반환 2022. 3. 20.
[프로그래머스] Lv1 - 가운데 글자 가져오기 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/12903 코딩테스트 연습 - 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret programmers.co.kr def solution(s): s, leng = list(s), len(s) answer = '' if leng % 2 == 0: answer = ''.join(s[leng//2-1:leng//2+1]) else: answer = ''.join(s[leng//2:leng//2+1]) return answer 풀이 1. 문자.. 2022. 3. 20.
[프로그래머스] Lv1 - 부족한 금액 계산하기 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/82612 코딩테스트 연습 - 부족한 금액 계산하기 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr def solution(price, money, count): result = sum([price*i for i in range(1, count+1)]) return abs(money-result) if money - result < 0 else 0 풀이 1. 총 가격 (result) = price * i 배열의 합 (i = 1 ~ co.. 2022. 3. 20.
[프로그래머스] Lv1 - 나머지가 1이 되는 수 찾기 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/87389 코딩테스트 연습 - 나머지가 1이 되는 수 찾기 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 입 programmers.co.kr def solution(n): for x in range(2, n): if n % x == 1: return x 풀이 1. 가장 작은 수를 구해야 하므로 2부터 n-1까지의 수로 x를 나누었을 때 나머지가 1이 되는 수를 반환 2022. 3. 19.
[프로그래머스] Lv1 - 최소직사각형 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/86491 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr def solution(sizes): x, y = 0, 0 for t in sizes: t.sort() x = max(x, t[0]) y = max(y, t[1]) return x*y 그리디 1. 각 사이즈들을 정렬한다. 2. 각 width, height 별로 max값을 찾는다 3. 넓이 반환 2022. 3. 19.
[프로그래머스] Lv1 - 2016년 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/12901 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까 programmers.co.kr month_day = {1: 31, 2: 29, 3: 31, 4: 30, 5: 31, 6: 30, 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31} weeks = {0: 'FRI', 1: 'SAT', 2: 'SUN', 3: 'MON', 4: 'TUE', 5: 'WED', 6: 'THU'} de.. 2022. 3. 19.
[프로그래머스] Lv1 - 두 개 뽑아서 더하기 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr from itertools import combinations as comb def solution(numbers): arr = list(comb(numbers, 2)) answer = [sum(temp) for temp in arr] answer = sorted(list(set(answer))) return an.. 2022. 3. 19.