목록코딩/프로그래머스 (7)
잠 안 올 때 끄적끄적

> 문제 > 코드 def solution(N, stages): res = {k:0 for k in range(1,N+2)} for i in set(stages): res[i] = sum([st

>문제 > 풀이 이게 내 풀인데 풀이가 너무 더러워 보여서.. 눈물이 난다 def solution(dartResult): i=0 j=0 #0,1,2 b={"S":"**1","D":"**2","T":"**3"} res_li=[0,0,0] while (i

> 문제 > 코드 def solution(number, limit, power): n_dic={} for n in range(1,number+1): #공약수 구하기 div1 = [] for i in list(range(1,int(n**(1/2)+1))): if n%i ==0: div1.append(i) div2 = [n//di for di in div1] div1.extend(div2) ##### len_div = len(set(div1)) len_div = len_div if len_div

> 문제 > 코드 def solution(k, score): answer = [] newscore = [] for sc in score: newscore.append(sc) newscore.sort(reverse=True) answer.append(min(newscore[:k])) return answer 금방 풀었다. 새 리스트에 순서대로 더해서 sort()로 제일 작은 점수 찾으면 끝!

> 문제 > 코드 문제를 잘못 읽어서 한참 헤맸다. "s.count(x)"-"s.count(!x)" == 0 인 경우들을 분해하면 됐는데 문자의 개수를 각각 보고 같아질 때가 있는지를 확인한 것... 뚜쉬 저 입출력 예 #3에서 "aaabbacc〰️"가 아니라 "aaaabbacc〰️"정도만 됐어도 알아차렸을 텐데ㅠ 그리고 코드도 길게 짜서 속상하다 ㅠㅠ 일단 맞는 코드는 def solution(s): answer = 0 cnt = 0 i = 0 while s: w = s[0] for i in range(len(s)): if s[i] == w: cnt += 1 else: cnt -= 1 if cnt == 0 or i == len(s) - 1: s = s[i+1:] answer += 1 break retur..

> 문제 > 코드 나는 처음에 이렇게 풀었는데 쓸데없는 코드가 들어있었다. def solution(s): s_dict = dict() answer=[] for s_ch in set(s): s_dict[s_ch] = [s.index(s_ch)] for s_i, s_ch in enumerate(s): li = s_dict[s_ch] if li[-1] == s_i: answer.append(-1) else: answer.append(-li[-1]+s_i) s_dict[s_ch].append(s_i) return answer key에 특정 값이 있는지, 없는지는 in / not in 으로 확인하면 됐고... 그래서 처음에 for문에 적힌 과정이 필요없었던 것임 ㅠㅠ 그리고 dict value값에 모든 인덱스를 ..