백준 2839번
n = int(input())
a = n // 3
b = n // 5
temp = []
for i in range(a):
for j in range(b):
if n == 3*a + 5*b:
temp.append(a+b)
if len(temp) == 0:
print(-1)
else:
print(min(temp))
맞았긴 맞았는데 이중포문 드가서 그런지 속도가 너무 느리당
n = int(input())
def test(n,b):
if ((n-5*b)%3==0):
return (n-5*b)//3+b
elif ((n-5*b)%3!=0) & (b==0):
return -1
else:
return test(n,b-1)
b = n//5
print(test(n,b))
이건 친구가 옆에서 푼 방법인데 재귀로 풀었더라
요건 내꺼보다 세배나 빨랐당
n=int(input())
print(-(n in[4,7])or n-2*n//5*2)
글구 요건 백준 숏코딩에서 가져온 코드
or 연산자를 쓰는 방법을 알았당
n이 4이거나 7이면 -True => -1
또는 n-2n을 5로 나눈 몫2 인거같은데………
n = int(input())
result = 0
while n%5:
n-=3
result+=1
print(-1 if n<0 else result+(n//5))
받아온 n에서 5를 나눈 나머지가 false(0)일 때까지 while을 돈다.
n에서 5를 나눈 나머지가 존재할 때, n에서 3을 빼고 result를 1 더 한다.
그리고 n에서 5를 나눈 나머지가 false가 되면 프린트한다.
만약에 n이 0보다 작으면 -1, 아니면 result에서 n을 5 나눈 몫을 더한 값을 프린트한다.