일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 고득점키트
- 골든래빗
- 파이썬 #프로그래머스 #코딩테스트
- SQL #프로그래머스 #MAX #MIN
- SQL고득점키트
- 고득점kit
- 코딩테스트
- h-index
- groupby
- 파이선
- 카카오코테
- 프로그래머스
- 코테
- 기초
- SQL
- 행렬곱셈
- 공식문서
- SQL #프로그래머스 #SELECT
- H-인덱스
- 재귀
- 2단계
- 스택
- 분할정복
- SQL #프로그래머스 #조건절 #ISNULL
- level2
- Python
- 방문길이
- Join
- 파이썬
- 해시
- Today
- Total
목록프로그래머스 (14)
영아일지
https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [내 풀이] 1. 순서, 기능 중요도의 deque를 생성한다. 2. 원형 큐를 돌면서 최대값을 갱신한다. 3. 프로세스가 실행되었을 때 순서가 location번째의 값이라면 즉시 답 도출 from collections import deque def solution(priorities, location): q = deque(list(range(len(priorities)))) #순서 p = dequ..
https://school.programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [내 풀이] 1. 스테이지를 1~N까지 올리며 해당 스테이지에 있는지에 대한 여부를 판단한다 2. result라는 딕셔너리로 스테이지, 실패율을 저장한다 3. sort함수로 실패율 순으로 정렬하고 key값만 추출한다 **이때 total이 0인 경우를 생각을 못해서 처음에 런타임 에러가 났었다. 예외인 경우도 꼭 생각해볼 것! def solution(N, stages): stages = [0]+st..
문제 ) 피보나치 수열 값을 1234567로 나누어라 def solution(n): fibo=[0,1] for i in range(2, n+1): fibo.append((fibo[i-2]+fibo[i-1])%1234567) return fibo[-1] 풀이) 재귀함수로 하려고 했으나 시간 초과가 났다 fibo를 메모이제이션으로 하여 하는 방법이 이전에 연산했던 것을 다시 하지 않아도 되기 때문에 시간이 훨씬 빠르다 유의할 점은, 피보나치 수가 커지면 int로 감당하기 힘들어 문제에 주어진 조건이 1234567을 계산을 할 당시마다 나누어주어야한다.
2018 KAKAO Blind recruit [1차 뉴스 클러스터링] sol) 1. 대소문자를 구분안하기 때문에 모두 대문자로 변환한다. 2. 알파벳이외에는 다중집합을 만들지 않기 때문에 알파벳이라면 다중집합인 s1, s2 를 만들었다 3. s1과 s2가 공집합이면 자카드 유사도가 1 이라 미리 가지치기 했다. 4. 교집합일 경우를 구해주었다. - 이때, break를 해주어야 중복이 되지 않으며 교집합 값을 remove해주어야 한다. 5. s2는 이미 교집합이 제거된 상태이기 때문에 합집합은 s1길이 + s2길이이다. 6. math를 활용하여 버림한다. import math def solution(str1, str2): answer = 0 inter = 0 str1 = str1.upper() #대소문자 ..
내 풀이 sol 1) 1. 종류별 옷 딕셔너리를 생성한다 - 이때, v 값을 더하려면 리스트 안에 두어야 함! 2. 경우의 수를 곱한다 - 어렸을 때 배웠던 수학 공식인 지수의 곱에서 아이디어를 얻은 것인데 경우의 수를 구할 때 (개수+1)*(개수+1) ...으로 개수를 생성하고 0,0,0 인 수 하나를 빼면 경우의 수가 나온다 def solution(clothes): #종류별 옷 딕셔너리 생성 dic = {} for v, k in clothes: if k in dic: dic[k] += [v] else: dic[k] = [v] #dic = {"face":["crow_mask","blue_sunglasses","smoky_makeup"]} ans = 1 for d in dic.keys(): ans *= ..
내 풀이 sol 1 ) 접두사를 정렬한 후, 바로 옆 문자와 비교하여 같은 값을 가지면 return false sort() 함수는 lst = ['11', '234', '11115' ] 일 경우 lst.sort() #['11', '11115' , '234' ] 로 나타난다 ! 문자열의 번호 순으로 나열하기 때문에 바로 옆에랑만 비교해줘도 된다 def solution(phone_book): phone_book.sort() for i in range(len(phone_book)-1): if phone_book[i] == phone_book[i+1][:len(phone_book[i])]: return False return True sol 2 ) 문제 분류가 해시로 되어있길래 다른 사람풀이를 보았다. 1. ha..