문제출처 - https://programmers.co.kr/learn/courses/30/lessons/49993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 def solution(skill, skill_trees): answer = 0 dic = dict() for i in range(len(skill)): dic[skill[i]] = i for i in range(len(skill_trees)): check = [-1] flag = True for j in range(len(skill_trees[i])): # 스킬순서에 있는거면 if sk..
문제출처 - https://programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 import heapq # 힙에서 원소 뺐으면 다른 힙 초기화하고 다시 넣어줌 def changeHeap(heap): h = [] for num in heap: heapq.heappush(h, -num) return h def solution(operations): answer = [] # [최댓값, 최솟값] minheap = [] maxheap = [] for o in operation..
문제출처 - https://programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(jobs): answer = 0 start = 0 # 현재까지 진행된 작업 시간 length = len(jobs) jobs = sorted(jobs, key=lambda x: x[1]) # 소요시간 우선 정렬 while len(jobs) != 0: for i in range(len(jobs)): if jobs[i][0]
풀이 T = int(input()) for case in range(1, T+1): n = int(input()) name = [input() for _ in range(n)] answer = list(set(name)) answer.sort() answer = sorted(answer, key=len) print("#%d" % case) for ans in answer: print(ans) 정렬을 2번 해줘야 통과되는 문제였다... 1. name을 입력받고 중복되는 값을 제거하기 위해 set으로 바꾼 후 answer에 넣어준다. 2. answer.sort()로 answer를 정렬하면 사전순으로 정렬된다. 3. 다시, answer를 sorted(answer, key=len)으로 정렬하면 길이순으로 정렬된다.
문제출처 - https://programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(N, stages): fail = [[0, idx] for idx in range(N + 1)] # [실패율, 스테이지 번호] stages.sort() temp = stages[0] cnt = 1 for i in range(1, len(stages)): if temp != stages[i]: fail[temp] = [cnt / (len(stages) - i + cnt), t..
문제출처 - https://programmers.co.kr/learn/courses/30/lessons/42890 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from itertools import * def checkMinimality(candidate, target): for i in range(len(candidate)): cnt = 0 for j in range(len(candidate[i])): if candidate[i][j] in target: cnt += 1 if cnt == len(candidate[i]): return False ret..
순열(Permutation) 순열은 n개의 원소를 사용해 순서를 정해 r개의 배열로 나타내는 것이다! 순열은 순서가 있기 때문에 원소의 종류가 같아도 순서가 다르면 다른 배열이 된다. Python Permutations Python의 라이브러리를 활용해 순열을 구하는 방법이다. from itertools import permutations a = [1,2,3] permute = permutations(a,2) print(list(permute)) >> 결과 [(1,2),(1,3),(2,1),(2,3),(3,1),(3,2)] 조합(Combination) 조합은 n개의 원소를 사용해 순서의 관계없이 r개의 배열로 나타내는 것이다. 조합은 순서가 없기 때문에 원소의 종류가 같으면 같은 배열이 된다! Pytho..
문제출처 - https://programmers.co.kr/learn/courses/30/lessons/60059 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 90도 회전 def rotation(arr): n = len(arr) ret = [[0] * n for _ in range(n)] for i in range(n): for j in range(n): ret[j][n-1-i] = arr[i][j] return ret # 자물쇠가 열리는지 췍 def check(startX, startY, key, lock, expendSize, start, end..
- Total
- Today
- Yesterday
- 프로그래머스
- programmers
- left join
- 힙
- 구현
- 정렬
- 괄호
- Python
- 코딩테스트
- 우선순위큐
- 스택
- combination
- 딕셔너리
- 문자열
- Permutation
- SWExpert
- 순열
- 완전탐색
- 백준
- hash
- 파이썬
- SW Expert
- 2019 Kakao Blind Recruitment
- C++
- 해시
- 재귀
- 문자열처리
- BOJ
- 2020 KAKAO BLIND RECRUITMENT
- dictionary
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |