프로그래머스(파이썬)

    문자열 정렬하기(1) - 정규식★→re.sub()

    나의 풀이 def solution(my_string): a=[] for i in my_string: if i.isdecimal(): a.append(int(i)) a.sort() return a ▶ isdecimal() 메서드 사용 다른 사람의 풀이- 정규식이용★ import re def solution(my_string): return sorted(map(int, (list(re.sub('[^0-9]', '', my_string))))) ▶ [^0~9]는 0~9의 숫자가 아닌 문자열을 의미한다.

    모음제거★ → 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] ▶ 오름차순으로 정렬한 다음 두번째로 큰 값 * 첫번째로 큰 값 다른사람..