분류 전체보기

    저주의 숫자3

    나의 풀이 def solution(n): a=[] for i in range(1, 200): if i % 3 ==0: pass elif '3' in str(i): pass else: a.append(i) a.insert(0,0) return a[n] 모범답안 def solution(n): answer = 0 for _ in range(n): answer += 1 while answer % 3 == 0 or '3' in str(answer): answer += 1 return answer ▶pass를 사용하지 않고, 해당 숫자가 3의 배수이거나 3을 포함하는 경우 +1을 추가적으로 해서 해당 숫자를 넘어가겠다는 idea 칭찬한다. ▶리스트를 사용하지 않고, direct로 숫자를 반환하는 것도 칭찬한다.

    문자 반복 출력 - 빈 문자열 이용

    문제풀이 def solution(my_string, n): str='' for i in my_string: str+=i*n return str

    배열 뒤집기

    배열 뒤집기 - 다양한 방법 존재 def solution(num_list): reverse_list=[] for i in range(len(num_list)-1, -1, -1): reverse_list.append(num_list[i]) def solution(num_list): return num_list[::-1] def solution(num_list): result =[] while(num_list): result.append(num_list.pop()) return result

    연속된 수의 합

    문제풀이 우리가 구하고자 하는 answer의 첫째항을 a로 가정한 후, a를 구하면 num만큼 반복시켜 answer를 구성할 예정입니다. total = a + (a+1) + (a+2) + ... + (a+n-1) total = (a+n-1) + (a+n-2) + (a+n-3) + ... +a 좌변, 우변끼리 더하면 2total = (2a+n-1) + (2a+n-1) + (2a+n-1) + ... (2a+n-1) 입니다. 여기서 우변의 반복되는 항은 n개가 있으므로 다시 정리하면 2total = (2a+n-1)n이 됩니다. num개 =n개이므로 이제 a를 구해보자면... a = (2*total/num + 1 - num) / 2 a는 starting point입니다. 이제 a를 구했으니 for문을 0부터 ~..