230201
문제 설명
개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return하도록 solution 함수를 완성해주세요.
제한사항
hp는 자연수입니다.
0 ≤ hp ≤ 1000
입출력 예
hp | result |
---|---|
23 | 5 |
24 | 6 |
999 | 201 |
def solution(hp):
war, re = divmod(hp, 5)
sol, er = divmod(re, 3)
return war+sol+er
# hp // 장군 = 장군 마리 수, hp % 장군 = 남은 hp
# hp // 병정 = 병정 마리 수, hp % 병정 = 일 마리 수
def solution(hp):
return hp // 5 + (hp % 5 // 3) + ((hp % 5) % 3)
나는 변수 생성해서 했는데 다른 사람들은 그냥 했네..
그래도 전에 배운 divmod를 사용해봐서 나름 만족
230201
문제 설명
어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
제한사항
1 ≤ n ≤ 10
1 ≤ t ≤ 15
입출력 | 예 |
---|---|
n | t |
2 | 10 |
7 | 15 |
def solution(n, t):
return n * 2**t
# 비트쉬프트 연산 사용
def solution(n, t):
return n << t
오...비트 쉬프트를 처음 접했다. 아주 간편하고 좋다
정수 1개를 받아 2ⁿ배를 곱해 출력한다.
a << n # a*2ⁿ
이건 a의 값에 2ⁿ를 곱해 출력한다는 뜻이다.
a >> n # a*(1/2)ⁿ
반대로 이건 a의 값에 (1/2)ⁿ를 곱해 출력한다는 뜻이다.
8 << 1 # 16
8 << 2 # 8 * 4 = 32
8 >> 1 # 4
8 >> 2 # 8 * (1/4) = 2
10 << 1 # 20
10 << 2 # 10 * 4 = 40
10 << 3 # 10 * 8 = 80
10 >> 1 # 5
10 >> 2 # 10 * (1/4) = 2
10 >> 3 # 10 * (1/8) = 1