프로그래머스(파이썬)/LV.1(파이썬)
실패율★→collections의 Counter() 함수 vs count() 함수 + 정렬: 첫 번째 요소 내림차순, 두 번째 요소도 내림차순...
나의 풀이 from collections import Counter def solution(N, stages): answer = [] result = [] length=len(stages) dic_user_stage=Counter(stages) #print(dic_user_stage) for idx in range(1, N+1): if length != 0: fail_ratio = dic_user_stage[idx]/length answer.append([idx, fail_ratio]) length = length-dic_user_stage[idx] else: answer.append([idx, 0]) sorted_answer = sorted(answer, key=lambda x: [-x[1]]) #pr..
소수 만들기→조합(3중 for문)+ 소수인지 판별def isPrime(x)★★+새로운 소수판정법★
나의 풀이 def isPrime(x): if x ==1: return False for i in range(2, x): #만약에 x가 2라면 for i in range(2,2)가 된다. 그냥 지나감 if x % i ==0: return False else: #else는 for문을 정상적으로 다 돌은 경우를 의미한다. return True def solution(nums): l = len(nums) cnt=0 for i in range(l-2): for j in range(i+1, l-1): for k in range(j+1, l): sum=nums[i]+nums[j]+nums[k] if isPrime(sum) == True: cnt=cnt+1 return cnt 다른 사람의 풀이 from itertool..
모의고사 → 순환 %★ + for x, y in enumerate(answers)★
다른 사람의 풀이 def solution(answers): result = [] one = [1, 2, 3, 4, 5] two = [2, 1, 2, 3, 2, 4, 2, 5] three = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] score = [0, 0, 0] for i, answer in enumerate(answers): if one[i%5] == answer: score[0] += 1 if two[i%8] == answer: score[1] += 1 if three[i%10] == answer: score[2] += 1 for i in range(len(score)): if max(score) == score[i]: result.append(i+1) return result ▶ fo..
삼총사→ 조합 + 삼중 for문
나의 풀이 from itertools import combinations def solution(number): cnt=0 tmp=list(combinations(number, 3)) for tuple in tmp: if sum(tuple) ==0: cnt+=1 return cnt 다른 사람의 풀이 def solution(number): answer = 0 l = len(number) for i in range(l-2): for j in range(i+1, l-1): for k in range(j+1, l): # print(number[i],number[j],number[k]) if number[i]+number[j]+number[k] == 0: answer += 1 return answer