📚 문제 제한 사항 scoville의 길이는 2 이상 1,000,000 이하입니다. K는 0 이상 1,000,000,000 이하입니다. scoville의 원소는 각각 0 이상 1,000,000 이하입니다. 모든 음식의 스코빌 지수를 K 이상으로 만들 수 없는 경우에는 -1을 return 합니다. 입력 예시 [1, 2, 3, 9, 10, 12], 7출력 예시 2🧑🏻💻 풀이 과정 heapq를 사용해야한다. (이진 트리(binary tree) 기반의 최소 힙 자료구조) heapq에서 가장 작은 값이 K와 같거나, 클 동안 반복하자. 입력받은 scoville을 내림차순 정렬 후, heapify()를 이용하여 리스트를 힙으로 변환하자. heappop()은 힙에서 가장 작은 원소를 삭제 후, 그 값을 리턴해준다...
📚 문제 제한 사항 1 ≤ s의 길이 ≤ 50 s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다. return 값이 1 이상 2,000,000,000 이하의 정수가 되는 올바른 입력만 s로 주어집니다. 입력 예시 1 "one4seveneight" 출력 예시 1 1478 입력 예시 2 "23four5six7" 출력 예시 2 234567 입력 예시 3 "2three45sixseven" 출력 예시 3 234567 입력 예시 4 "123" 출력 예시 4 123 🧑🏻💻 풀이 과정 인덱스의 숫자와 일치하는 문자 배열(alphabets)을 만들자. ('zero'(0), 'one'(1), 'two'(2)...) enumerate를 이용해서 문자 배열의 인덱스와 문자를 반복하며 꺼내오자. 입력받은 s..
📚 문제 제한 사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입력 예시 1 "abcde"출력 예시 1 "c"입력 예시 2 "qwer"출력 예시 2 "we"🧑🏻💻 풀이 과정 입력받은 s의 길이를 구하고 반으로 나눈다. 홀수라면 s[mid]를 반환하고, 짝수라면 s[mid-1]과 s[mid-1]를 반환하자. 예: 길이가 5라면 01234, 길이가 6이라면 012345이므로 -1을 포함해야한다. def solution(s): mid = len(s) // 2 if len(s) % 2 == 1: return s[mid] else: return s[mid-1] + s[mid] # 테스트를 위한 코드입니다. s = "abcde" print(solution(s)) s = "qwer" print(solutio..
📚 문제 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 입력 예시 "try hello world"출력 예시 "TrY HeLlO WoRlD"🧑🏻💻 풀이 과정 주어진 s에서 " "을 기준으로 단어를 분리하자. 단어의 알파벳마다 홀짝을 판단해서 짝수번째라면 대문자로, 홀수번째라면 소문자로 저장하자. 단어마다 마지막에는 " "을 넣었기 때문에 마지막 요소는 pop해주자. 리스트로 저장되어 있기 때문에 그대로 반환하면, ['T', 'r', 'Y', ' ', 'H', 'e', 'L..
📚 문제 제한 조건 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 입력 예시 1 [4,3,2,1]출력 예시 1 [4,3,2]입력 예시 2 [10]출력 예시 2 [-1]🧑🏻💻 풀이 과정 배열의 첫 번째 값을 변수(min_val)에 저장해두고, 반복하면서 가장 작은 수를 찾아 remove하자 def solution(arr): min_val = arr[0] for i in range(1, len(arr)): if min_val > arr[i]: min_val = arr[i] arr.remove(min_val) return [-1] if len(arr) < 1 else arr # 테스트를 위한 코드입니다. print(solution([4, 3,..
문제 프로그래머스 - 완주하지 못한 선수 코드 def solution(participant, completion): d = {} # 같은 이름이 존재하면 1을 더하고, 존재하지 않으면 0 저장 for x in participant: d[x] = d.get(x, 0) + 1 for x in completion: d[x] -= 1 dnf = [k for k, v in d.items() if v > 0] return dnf[0]
문제 프로그래머스 - 로또의 최고 순위와 최저 순위 코드 def solution(lottos, win_nums): nums = set(win_nums) hit_nums = 0 # 맞춘 로또 번호의 수 for num in lottos: if nums.__contains__(num): hit_nums += 1 min_rank = 7 - hit_nums if 0 < hit_nums else 6 zero_nums = 0 # 지워진 로또 번호의 수 for num in lottos: if num == 0: zero_nums += 1 max_rank = 7 - hit_nums - zero_nums if max_rank == 7 : max_rank = 6 # 맞춘 번호도 없고, 지워진 번호도 없다면 6등 return ..
- Total
- Today
- Yesterday
- 북클럽
- 릿코드
- 리팩토링
- webflux
- 노마드코더
- 코틀린
- 구현
- Real MySQL
- Algorithm
- leetcode
- MySQL
- kotlin
- 그리디
- 파이썬
- 자료구조
- 정렬
- 데이터베이스
- spring boot
- 스프링부트
- 노마드
- 인프런
- 문자열
- 알고리즘
- Spring
- 코테
- 백준
- mysql 8.0
- 김영한
- 스프링 부트
- 스프링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |