Python 10718번

print("강한친구 대한육군")
print("강한친구 대한육군")

강한친구 대한육군

강한친구 대한육군

백준 1094번

a = int(input())

b = a // 64
a = a % 64
b = b + (a // 32)
a = a % 32
b = b + (a // 16)
a = a % 16
b = b + (a // 8)
a = a % 8
b = b + (a // 4)
a = a % 4
b = b + (a // 2)
a = a % 2
b = b + a
print(b)

만약 a가 64로 나누어 떨어지면 b에 1이 추가되고 a에는 나머지 0이 저장됩니다.

그러면 다른 연산에서는 값에 변화가 일어나지 않고 1이 출력됩니다.

 

64로 나누어지지 않으면 a값이 그대로 다음 연산에 사용되고,

a값이 32 또는 16... 등 보다 크면 다시 b에 1이 추가되고

a에는 나머지가 저장됩니다.

 

이렇게 반복하다 보면 몇 개의 막대를 연결했는지

구할 수 있습니다.

백준 1676번

a = int(input())
b = 1
c = 0
while (a > 0):
    b = b * a
    a = a - 1

while 1:
    if (b % 10 == 0):
        b = b // 10
        c = c + 1
    else:
        print(c)
        break

N을 입력받습니다.(여기서는 a)

 

a를 하나씩 줄여가며 b에 곱해줍니다.

 

 

b%10 이 0이면 b를 10으로 나눠준 뒤 c에 1을 더해줍니다.

만약 10으로 나눈 나머지가 0이 아니라면

c를 출력하고 반복문을 종료합니다.

백준 10156번

a, b, c = map(int, input().split(' '))
num = a * b
if(num >= c):
    print(num - c)
else:
    print("0")

Python 10156번 풀이

 

a, b, c = map(int, input().split(' '))

 

a, b, c를 입력 받습니다.

 

num = a * b
if(num >= c):
    print(num - c)
else:
    print("0")

 

a * b를 구한 뒤 c보다 크면 둘은 뺀 값을 출력하고,

c보다 작으면 0을 출력합니다.

백준 2675번

num = int(input())

for x in range(num):
    inp = input()
    llis = inp.split(' ')
    nunm = int(llis[0])
    lis = list(llis[1])
    for b in range(len(lis)):
        for a in range(nunm):
            print(lis[b], end='')
    print(end='\n')

Python 2675번 풀이

 

num = int(input())

 

우선 반복 횟수인 T를 입력받습니다.

 

    inp = input()
    llis = inp.split(' ')

 

그리고 각 줄을 string 형태로 입력받아 공백을 기준으로

앞의 숫자(R)와 뒤의 문자열(S)을 분리시켜줍니다.

 

    nunm = int(llis[0])
    lis = list(llis[1])

 

앞의 숫자가 string 형태로 되어있으니 int형으로 변환시키고,

뒤의 문자열은 char 타입의 배열로 바꿔줍니다.

 

for b in range(len(lis)):
        for a in range(nunm):
            print(lis[b], end='')

 

각 문자를 입력받은 R의 크기만큼 반복하여 출력해주고,

이를 배열의 크기만큼 반복합니다.

 

파이썬의 print는 기본적으로 줄 바꿈을 내제하고 있으므로,

end=''

가운데가 비어있는 작은 따옴표 2개로 줄 바꿈과 공백이

없음을 표시해줍니다.

 

    print(end='\n')

 

이후 각 줄의 출력이 끝날 때마다 별도의 줄 바꿈을 해주면 됩니다.

백준 1712번

import sys

num = list(map(int, input().split(' ')))
if(num[1] >= num[2]):
    print("-1")
    sys.exit()
profit = int(num[2] - num[1])
end = int(num[0]/profit) + 1
print(end)

Python 1712번 풀이

 

 

import sys

 

sys.exit()를 이용하여 손익분기점을 넘길 수 없는 경우에 "-1"을 출력해 줄 것입니다.

 

num = list(map(int, input().split(' ')))

 

A, B, C를 list로 만들어 num에 저장해줍니다.

 

if(num[1] >= num[2]):
    print("-1")
    sys.exit()

 

B가 C보다 큰 경우에는 절대로 손익분기점을 넘을 수 없습니다. "-1"을 출력해줍니다.

 

profit = int(num[2] - num[1])
end = int(num[0]/profit) + 1
print(end)

 

노트북 한 대를 팔았을 때의 이윤을 구한 뒤

초기 비용을 한 대 당 이윤으로 나누어주고,

수익이 나는 순간을 찾기 위해 +1 해줍니다.

+ Recent posts