전체 글
더 맵게 → heap★★
나의 풀이 import heapq def solution(scoville, K): cnt=0 heap=[] for x in scoville: heapq.heappush(heap, x) if heap[0]>=K: return cnt while(len(heap)>1): 첫번째로 가장 작은 원소를 pop한다. min1=heapq.heappop(heap) 또 남아있는 것 중에서 가장 작은 원소를 pop한다. min2=heapq.heappop(heap) new_scoville=min1+(min2*2) heap.append(new_scoville) cnt+=1 if heap[0]>=K: return cnt return -1 힙(자료구조)의 활용 ▶ import heapq heap =[] heapq.heappush(..
귤 고르기 → getOrDefault()★★ + 요소 개수 세기 + 내림차순★
나의 풀이 import java.util.*; class Solution { public int solution(int k, int[] tangerine) { int answer = 0; HashMap hm = new HashMap(); for(int key: tangerine){ hm.put(key, hm.getOrDefault(key, 0)+1); } Object[] values = hm.values().toArray(); Arrays.sort(values, Collections.reverseOrder()); int kind=1; int sum=(int)values[0]; for(int i=1; i=k){ return kind; } else{ sum+=(int)values[i]; kind+=1; } ..
귤 고르기→ Counter() 함수, most_common()
from collections import Counter def solution(k, tangerine): list=Counter(tangerine).most_common() #종류의 수 kind=1 sum=list[0][1] for i in range(len(list)-1): if sum>=k: return kind else: sum+=list[i+1][1] kind+=1 return kind
k진수에서 소수 개수 구하기→10진수를 n진법의 문자열+StringBuilder()+소수판별(제곱근, long타입)
class Solution { //n을 k진법으로 나타낸 문자열 반환 //String객체를 매번 생성하는 것이 아니라 StringBuilder객체를 한번만 생성!! public String conv(int n, int k) { StringBuilder sb = new StringBuilder(); while (n > 0) { sb.append(n % k); n = (int) Math.floor(n / k); } return sb.reverse().toString(); } //소수인지 판별 public boolean isPrime(long x) { if (x == 1) { return false; } for (int i = 2; i < (int) (Math.sqrt(x)) + 1; i++) { if (x ..