문제는 위와 같고 코드는 아래와 같다.

a,b,c,m = map(int,input().split())
time=0
tired=0
work=0
while(time<24):
    if(tired+a<=m):
        tired+=a
        work+=b
    else:
        tired-=c
        if tired <0:
            tired = 0
    time+=1
print(work)

피로도 안에서 할 수 있는 모든 일을 한 후, 피로도가 일정 수준 이상 낮아졌을 경우 쉬는 과정을 반복,

만약 피로도가 음수일 경우에는 0으로 초기화함으로서 24시간 안에 할 수 있는 일의 양을 계산한다.

문제는 위와 같고, 코드는 아래와 같다.

a_list=list(map(int,input()))
is_three=0
is_zero=True
result=0
iterat=0
for num in a_list:
    if num==0:
        is_zero = False
    result+=num
if (is_zero) or ((result%3)!=0):
    print(-1)
else:
    a_list.sort(reverse=True)
    for nums in a_list:
        print(nums,end="")

모든 자릿수의 합이 3의 배수여야 3의 배수를 만들 수 있다는 것은 자명한 사실이기에

모든 자릿수의 합이 3의 배수인지 확인하고, 이 값이 0인지도 확인한 후

입력받은 수를 역으로 정렬해 이를 출력했다.

 

 

문제는 다음과 같고, 코드는 아래와 같다.

a,b = input().split()
count = 1
while (int(b)>int(a)):
    if b[-1]=="1":
        b = b[0:-1]
        count+=1
    elif int(b)%2==0:
        b = str(int(b)//2)
        count+=1
    else:
        break
if a==b:
    print(count)
else:
    print(-1)

a,b를 입력을 받은 후,

a를 b로 변환시키는 것이 아니라

b를 a로 변환시킴으로서 문제를 해결해 나갔다.

따라서 가장 마지막에 1이 존재할 경우는 이를 제거하고,

2를 나눌 수 있다면 2로 나누는 과정 하나하나를 전부 연산 숫자로 생각하고

불가능할 경우 -1을 출력하도록 구현했다.

+ Recent posts