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

    치킨 쿠폰★ 갱신의 논리

    문제풀이 def solution(chicken): coupon =chicken sum =0 eaten =0 while coupon>=10: eaten = coupon//10 sum = sum +eaten coupon= coupon % 10 +eaten return sum 문제해설 ▶ 먹은 만큼의 치킨 == 쿠폰 ▶ 쿠폰이 10장이상 있다면 무조건 치킨으로 바꾼다. ▶ 즉 10장미만이 되기 전까지 while문 계속 돌린다.

    특이한 정렬★★ - 리스트 통째 + 정렬기준★

    나의풀이 def solution(numlist, n): a=[] answer=[] for i in numlist: tmp= abs(i-n) a.append([tmp, i]) sorted_a = sorted(a, key=lambda x: (x[0], -x[1])) for i in sorted_a: answer.append(i[1]) return answer ▶ append의 요소로 리스트를 통째로 넣을 수 있다. → a.append([tmp, i]) ▶ a리스트의 요소가 [tmp, i]로 2개씩 추가 되므로 x[0], -x[1]은 각각의 요소에 접근한다. ▶ 즉 tmp = x[0] 으로 tmp를 오름차순으로 정렬 하되, tmp의 값이 중복되는 경우에는 ▶ i = x[1] 인데 -가 x[1]에 붙었으므로 i..

    저주의 숫자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