오늘 할 일: 끝내주게 숨쉬기
[프로그래머스] level 3 : 단어변환
OLD/Coding Test 2020. 5. 4. 14:26

문제 설명 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이hit, target가cog, words가 [hot, dot, dog, lot, log, cog]라면hit->hot->dot->dog->cog와 같이 4단계를 거쳐 변환할 수 있습니다. 두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 begin을 target으로 변환할 수 있는지 return 하도록 solution 함수를 작성해..

[4주차 정렬, DP] 코드 리뷰
OLD/Coding Study 2020. 3. 16. 16:08

1. Lv 1 - 예산(소팅) def solution(d, budget): total = 0 cnt = 0 d = sorted(d) for request in d: total += request if total >> list(zip([1, 2, 3], [4, 5, 6])) [(1, 4), (2, 5), (3, 6)] 4. Lv 2 - 가장 큰 수 from functools import cmp_to_key def solution(numbers): numbers = list(map(str, numbers)) func = lambda x, y: int(x + y) - int(y + x) numbers = sorted(numbers, key = cmp_to_key(func), reverse = True) ans..

article thumbnail
[프로그래머스] level 2 : 위장
OLD/Coding Test 2020. 3. 14. 16:53

문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한 사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clot..

[3주차 탐색] 코드 리뷰
OLD/Coding Study 2020. 3. 4. 14:00

탐색 1. Lv1 - 세 소수의 합 def solution(n): num = set(range(2, n + 1)) for i in range(2, n + 1): if i in num: num -= set(range(2 * i, n + 1, i)) num = list(num) answer = 0 for i in range(len(num)): for j in range(i + 1, len(num)): if (n - num[i] - num[j]) in num[j + 1:]: answer += 1 return answer 에라토스테네스의 체 : 시간복잡도는 O(NloglogN), N = 입력으로 주어진 n 소수 구하기 : 시간복잡도는 O(M**3), M = 소수의 개수 num 대신 prime_numbers, p..

[2주차 해시, 스택] 코드 리뷰
OLD/Coding Study 2020. 2. 28. 09:30

해시 1. Lv 2 - 나머지 한 점 import collections def solution(v): coord = {'x': [i[0] for i in v], 'y': [j[1] for j in v]} answer = [] for value in coord: my_counter = collections.Counter(coord[value]) my_counter = sorted(my_counter.items(), key=lambda x: x[1]) answer.append(my_counter[0][0]) return answer 딕셔너리 자료구조는 for key, value in coord.items() 또는 for axis, coordinates in coord.items()와 같이 표기하기 2. Lv..

[1주차 큐, 힙] 코드 리뷰
OLD/Coding Study 2020. 2. 23. 16:37

1. 큐 Lv 2 - 최대 용량이 정해진 FIFO 큐 클래스 class MyStack(object): def __init__(self): self.lst = list() def push(self, x): self.lst.append(x) def pop(self): return self.lst.pop() def size(self): return len(self.lst) class MyQueue(object): def __init__(self, max_size): self.stack1 = MyStack() self.stack2 = MyStack() self.max_size = max_size def qsize(self): return self.stack1.size() + self.stack2.size() d..

[0주차 모의고사] 스킬 트리
OLD/Coding Study 2020. 2. 18. 22:03

파이썬을 좀 더 파이썬 코드같이 작성하거나 내장 함수를 더 잘 쓰는 방법을 고민하기 다른 사람의 코드를 많이 읽어 보기 def solution(skill, skill_trees): answer = 0 idx = [] for i in skill_trees: for j in skill: if i.find(j) > -1: idx.append(i.find(j)) else: idx.append(30) if idx == sorted(idx): answer += 1 idx = [] return answer skill = "CBD" skill_trees = ["BACDE", "CBADF", "AECB", "BDA"] solution(skill, skill_trees) 코드 리뷰 line 3 idx를 for문 안의 첫 ..

[프로그래머스] level 1 : 제일 작은 수 제거하기
OLD/Coding Test 2020. 2. 9. 13:22

문제 설명 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한 조건 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 입출력 예 arr return [4,3,2,1] [4,3,2] [10] [-1] Solution 1 2 3 4 def solution(arr) : arr.remove(min(arr)) if arr == [] : arr.append(-1) return arr cs 코드해석 입력받은 배..

[프로그래머스] level 1 :두 정수 사이의 합
OLD/Coding Test 2020. 2. 9. 13:02

문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. 입출력 예 a b return 3 5 12 3 3 3 5 3 12 Solution 1 2 3 4 5 def solution(a, b): answer = 0 for i in range(min(a,b), max(a,b)+1): answer += i return answer cs 코드해석 입력받은 a, b중 ..

article thumbnail
[프로그래머스] level 1 : 같은 숫자는 싫어
OLD/Coding Test 2020. 2. 9. 12:41

문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 제한사항 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보다 크거나 ..

반응형