목록Algorithm (42)
middlemoon
답안 ) def solution(strlist): answer = [] for i in strlist: answer.append(len(i)) return answer 참고 ) // 한 줄로도 표현 가능def solution(strlist): return [len(i) for i in strlist]
답안 ) n이 3인 경우, numlist에 있는 값을 차례대로 반복하면서 나머지가 0으로 떨어지는 경우(i)에 리스트형태로 나열시킬 수 있도록 append를 추가해주는 방식으로 진행하였다.
처음에 접근하였 을 때의 코드 def solution(n): answer = 0 for i in range(1, n+1): for j in range(1, n+1): if i * j == n: answer += 1 return answer 문제원인 ) 지금 이중 for문을 써서 (i * j == n)인 경우의 수를 세고 있는데, 시간 초과(Time Limit Exceeded) 가 발생하였다. 접근방법 ) 해결 전략: 효율적인 방법 (O(√n))i * j == n을 만족하는 (i, j)쌍을 찾고 싶다면 굳이 모든 j를 반복할 필요가 없습니다.대신 i가 n의 약수인 경우, j = n // i라는 사실을 활용..
문제설명) 나의 접근방법) #배열의 리스트# def solution(dot):# answer = 0# for i in range(len(dot)):# if dot[0] and dot[1] > 0:# answer = 1# else: # dot[0] and dot[1] 사실 for문으로 접근을 하지않아도 되는 문제였다. 배열의 리스트로 담을 수 있지 않을까?라고 생각을 하다가배열의 리스트와 정수와 비교하기가 어려워 다른방법을 강구하였다. 이 코드는 기록용으로 남기기위해 올려놓았으니이렇게 접근하는 방법도 있었구나 라고 정도알아주시면 좋을 것 같다.. 🔧 잘못된 부분 요약문제 코드문제점 설명dot[0] and ..
답안 ) #12명이 4조각씩 먹을 때 3판 나눠서 몫#10명이 7조각이면 몫은 1인데 여기에서 +1을 시키면 몫이 최종적으로 2가됨def solution(slice, n): answer = 0 if n % slice == 0: answer = n // slice return answer else: answer = n // slice + 1 return answer