[쉽게 푸는 문제]-1292번
My answer
a,b=input().split()
a=int(a)
b=int(b)
tmp=[]
sum=0
for i in range(b):
if(len(tmp)>b):
break
while(tmp.count(i+1)!=i+1):
if(len(tmp)>b):
break
tmp.append(i+1)
for i in range(a-1,b):
sum+=tmp[i]
print(sum)
Another answer
p=[]
for i in range(1,46):
p+=[i]*i
a,b=map(int,input().split())
print(sum(p[a-1:b]))
더보기
어제부터 계속 나오는데 input받을 때 map 쓰는 걸 익숙해져야겠다. 우선 똑같은 방법이지만 나는 멍청하게 짰는데, python의 *성질을 이용하여 저렇게 while문을 안써도 개수만큼 넣을 수 있다는 걸 깨달았다.. +46이라는 숫자는 최대범위를 고려하여 넣은 값인 것 같다.
[소수]-2581번
My answer
a=int(input())
b=int(input())
tmp=[]
tmp=[i for i in range(b+1)]
for i in range(2,len(tmp)):
for j in range(i*2,len(tmp),i):
tmp[j]=0
tmp=[i for i in tmp[a:] if(i!=0)]
if(1 in tmp):
tmp.remove(1)
if(tmp!=[]):
print(sum(tmp))
print(min(tmp))
else:
print(-1)
Another answer
a = int(input())
b = int(input())
c = [i for i in range(a,b+1) if i != 1 and all(i % j for j in range(2,i))]
if c:
print(sum(c))
print(c[0])
else:
print(-1)
더보기
맨처음에는 2중 반복문으로 구현했었는데, 시간초과가 나서 에스토라테네스의 체를 이용해서 구했다. 아래 코드는 all()함수의 특징 인자가 모두 참이어야만 참을 반환하는 것을 이용히여 풀었다. 에스토라테네스의 체를 꼭 기억하자
728x90
반응형
'코딩테스트 > 백준[Python]' 카테고리의 다른 글
[Python/백준] #3085 -[사탕게임] (0) | 2021.11.19 |
---|---|
[Python/백준] #1062 - [가르침] [try_again] (0) | 2021.11.16 |
[Python/백준] #14719 - [빗물] (0) | 2021.11.15 |
[Python/백준] #14888 - [연산자 끼워넣기] / #2504 -[괄호의 값] (0) | 2021.11.12 |
[Python/백준] [기초문제] (0) | 2021.11.10 |