프로그래머스(파이썬)
서울에서 김서방 찾기→ format() 함수를 이용하자★
나의 풀이 def solution(seoul): answer = '' location=seoul.index("Kim") print(location) return "김서방은 "+str(location)+"에 있다" 다른 사람의 풀이 def solution(seoul): return "김서방은 {}에 있다".format(seoul.index('Kim')) ▶ format() 메서드를 이용하자
콜라츠 추측→if-else구문★
나의 풀이 def solution(num): cnt=0 if num == 1: return 0 for i in range(500): if num % 2 ==0: num=num//2 cnt+=1 if num ==1: return cnt else: num=num*3+1 cnt+=1 if num ==1: return cnt return -1 다른 사람의 풀이 def solution(num): for i in range(500): if num == 1: return 0 num = num / 2 if num % 2 == 0 else num*3 + 1 if num == 1: return i + 1 return -1 ▶ 간결하다 ▶ if-else구문을 이렇게도 쓸 수 있구나
두 정수 사이의 합 →sum(range(a,b+1))
나의 풀이 def solution(a, b): answer=[] for i in range(min(a,b), max(a,b)+1): answer.append(i) return sum(answer) 다른 사람의 풀이1 def solution(a, b): if a > b: a, b = b, a return sum(range(a,b+1)) 다른 사람의 풀이2 def solution(a, b): return (abs(a-b)+1)*(a+b)//2 ▶ 등차수열의 합 : n(a+l)/2 ▶ (abs(a-b)+1) : 항의 갯수를 의미한다. ▶ a는 첫번째 항, b는 마지막 항을 의미한다.
나머지가 1이 되는 수 찾기→ list comprehension 연습★
나의 풀이 def solution(n): answer = [] for i in range(1, n+1): if n % i == 1: answer.append(i) return min(answer) 다른 사람의 풀이 def solution(n): return [x for x in range(1,n+1) if n%x==1][0] ▶ 맨 앞에 있는 수는 가장 작은 수이며, 그때의 인덱스는 0이다.