프로그래머스(파이썬)
소수 만들기→조합(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
숫자 문자열과 영단어(카카오) →replace(), for문을 이용한 dictionary()★
나의 풀이 def solution(s): dic_alpha = {'zero':'0', 'one':'1', 'two':'2', 'three':'3', 'four':'4', 'five':'5', 'six':'6','seven':'7','eight':'8', 'nine':'9'} for key,value in dic_alpha.items(): s=s.replace(key, value) return int(s) ▶ replace( 변경할 문자, 대체문자) ▶ replace 메서드의 두 인자 모두 String 타입이 와야된다는 사실에 주의한다.