프로그래머스(파이썬)/LV.0(파이썬)

    모음제거★ → or 에 대한 개념

    나의 풀이 def solution(my_string): for i in my_string: if i == 'a' or i == 'e' or i == 'i' or i =='o' or i == 'u': new_string=my_string.replace(i, '') return new_string 나의 풀이(리펙토링) → 리스트, in연산자 def solution(my_string): for i in my_string: if i in ['a', 'e', 'i', 'o', 'u']: new_string=my_string.replace(i, '') return new_string 다른 사람의 풀이 def solution(my_string): answer='' for k in my_string: if k == "..

    팩토리얼★ - 비교를 반복적으로 하는 경우 while을 적극 활용

    나의 풀이 import math def solution(n): a=[] max = -2147000000 for i in range(1, 10): a.append(math.factorial(i)) for j in range(0, len(a)): if n < a[j]: return j elif n == a[j]: return j+1 else: return 10 ▶ 불필요하게 리스트에 넣지 말자 ▶ 리스트를 사용하는 경우 인덱스까지 처리해야 된다. ▶ 비교해야할 수를 직접적으로 비교하자 ▶ 비교를 반복적으로 해야하는 경우에는 while을 적극 활용하자 다른 사람의 풀이 from math import factorial def solution(n): k = 10 while n < factorial(k): k -=..

    최댓값 만들기(1) - 이중 for문으로 조합사용하기

    나의 풀이 def solution(numbers): answer =0 max = -2147000000 for i in range(0, len(numbers)-1): for j in range(i+1, len(numbers)): gop =numbers[i]*numbers[j] if gop > max: max = gop return max ▶ i는 0부터 시작하고, j는 i+1부터 시작함 ▶ 리스트의 길이가 5이고, 인덱스가 0 1 2 3 4라면 i는 3까지 이동하고, j는 4까지 이동한다. 다른 사람의 풀이1 def solution(numbers): numbers.sort() return numbers[-2] * numbers[-1] ▶ 오름차순으로 정렬한 다음 두번째로 큰 값 * 첫번째로 큰 값 다른사람..

    합성수 찾기★★-두 가지 요소가 동시에 변할 때→이중 for문

    나의 풀이 def solution(n): result =0 a=[] for k in range(1, n+1): cnt=0 #print("k=",k) for i in range(1, k+1): if k % i ==0: cnt=cnt+1 #print("i=", i) #print("cnt=", cnt) if cnt>=3: a.append(k) #print(a) return len(a) ▶k 가 변할 때 i도 같이 변한다. ▶두 가지 요소가 동시에 변하는 경우에는 이중 for문을 쓰자 ▶ k가 선택된 상태에서 i 값이 1부터 k까지 변한다. ▶ 안쪽 for문을 다 돌면 해당 k에 해당하는 약수의 누적갯수가 산출된다. ▶ k에 해당하는 약수의 누적갯수가 3이상일 때만 a리스트에 추가된다. ▶ 최종적으로 a리스트의..