일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- coding
- 연습문제
- coding test
- mysql
- CodingTest
- 조합
- programmers
- 코테
- 코딩
- lv4
- 코딩테스트
- 데이터분석
- lambda
- sql
- level4
- 프로그래머스
- 완전탐색
- time complexity
- 시간복잡도
- counter
- Level2
- join
- collections
- python
- import re
- itertools
- 파이썬
- Queue
- Stack
- BFS
- Today
- Total
ror_coding
[Programmers] 기사단원의 무기 - 136798 본문
728x90
약수 개수 효율적 연산 코드 좀 까먹지 말자!!!!!!!!!
Question
기사단원의 수를 나타내는 정수 number와 이웃나라와 협약으로 정해진 공격력의 제한수치를 나타내는 정수 limit와 제한수치를 초과한 기사가 사용할 무기의 공격력을 나타내는 정수 power가 주어졌을 때, 무기점의 주인이 무기를 모두 만들기 위해 필요한 철의 무게를 return 하는 solution 함수를 완성하시오.
Point
- 약수 개수 연산 코드
- sum ( 1 for i in range(1,int(n**0.5)+1) if n%i == 0 ) * 2
- 완전제곱이면 (즉 4 (1, 2, 4) 면 2가) 중복되니 1개 빼주는 코드
- if n**0.5 == int(n**0.5) : length -= 1
Code
def solution(num, limit, p):
answer = 0
for n in range(1,num+1):
length = sum(1 for i in range(1,int(n**0.5)+1) if n%i==0) * 2
if n**0.5 == int(n**0.5) : length -= 1
answer += p if length > limit else length
return answer
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/016.gif)
now me
On my github
728x90
'Algorithm > Python' 카테고리의 다른 글
[Programmers] [1차] 비밀지도 - 17681 (0) | 2024.10.12 |
---|---|
[Programmers] 가장 가까운 같은 글자 - 142086 (0) | 2024.10.12 |
[Programmer] 과일 장수 - 135808 (0) | 2024.10.12 |
[Programmers] 푸드 파이트 대회 - 134240 (0) | 2024.10.12 |
[Programmers] 콜라 문제 - 132267 (0) | 2024.10.12 |