๋ฌธ์ ์ค๋ช
์ด๋ค ๊ฒ์์๋ ๋ถ๋ ๊ฐ๊ธฐ
๋ผ๋ ๊ธฐ์ ์ด ์์ต๋๋ค.
๋ถ๋ ๊ฐ๊ธฐ
๋ t
์ด ๋์ ๋ถ๋๋ฅผ ๊ฐ์ผ๋ฉด์ 1์ด๋ง๋ค x
๋งํผ์ ์ฒด๋ ฅ์ ํ๋ณตํฉ๋๋ค. t
์ด ์ฐ์์ผ๋ก ๋ถ๋๋ฅผ ๊ฐ๋ ๋ฐ ์ฑ๊ณตํ๋ค๋ฉด y
๋งํผ์ ์ฒด๋ ฅ์ ์ถ๊ฐ๋ก ํ๋ณตํฉ๋๋ค. ๊ฒ์ ์บ๋ฆญํฐ์๋ ์ต๋ ์ฒด๋ ฅ์ด ์กด์ฌํด ํ์ฌ ์ฒด๋ ฅ์ด ์ต๋ ์ฒด๋ ฅ๋ณด๋ค ์ปค์ง๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๊ธฐ์ ์ ์ฐ๋ ๋์ค ๋ชฌ์คํฐ์๊ฒ ๊ณต๊ฒฉ์ ๋นํ๋ฉด ๊ธฐ์ ์ด ์ทจ์๋๊ณ , ๊ณต๊ฒฉ์ ๋นํ๋ ์๊ฐ์๋ ์ฒด๋ ฅ์ ํ๋ณตํ ์ ์์ต๋๋ค. ๋ชฌ์คํฐ์๊ฒ ๊ณต๊ฒฉ๋นํด ๊ธฐ์ ์ด ์ทจ์๋นํ๊ฑฐ๋ ๊ธฐ์ ์ด ๋๋๋ฉด ๊ทธ ์ฆ์ ๋ถ๋ ๊ฐ๊ธฐ
๋ฅผ ๋ค์ ์ฌ์ฉํ๋ฉฐ, ์ฐ์ ์ฑ๊ณต ์๊ฐ์ด 0์ผ๋ก ์ด๊ธฐํ๋ฉ๋๋ค.
๋ชฌ์คํฐ์ ๊ณต๊ฒฉ์ ๋ฐ์ผ๋ฉด ์ ํด์ง ํผํด๋๋งํผ ํ์ฌ ์ฒด๋ ฅ์ด ์ค์ด๋ญ๋๋ค. ์ด๋, ํ์ฌ ์ฒด๋ ฅ์ด 0 ์ดํ๊ฐ ๋๋ฉด ์บ๋ฆญํฐ๊ฐ ์ฃฝ์ผ๋ฉฐ ๋ ์ด์ ์ฒด๋ ฅ์ ํ๋ณตํ ์ ์์ต๋๋ค.
๋น์ ์ ๋ถ๋๊ฐ๊ธฐ
๊ธฐ์ ์ ์ ๋ณด, ์บ๋ฆญํฐ๊ฐ ๊ฐ์ง ์ต๋ ์ฒด๋ ฅ๊ณผ ๋ชฌ์คํฐ์ ๊ณต๊ฒฉ ํจํด์ด ์ฃผ์ด์ง ๋ ์บ๋ฆญํฐ๊ฐ ๋๊น์ง ์์กดํ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
๋ถ๋ ๊ฐ๊ธฐ
๊ธฐ์ ์ ์์ ์๊ฐ, 1์ด๋น ํ๋ณต๋, ์ถ๊ฐ ํ๋ณต๋์ ๋ด์ 1์ฐจ์ ์ ์ ๋ฐฐ์ด bandage
์ ์ต๋ ์ฒด๋ ฅ์ ์๋ฏธํ๋ ์ ์ health
, ๋ชฌ์คํฐ์ ๊ณต๊ฒฉ ์๊ฐ๊ณผ ํผํด๋์ ๋ด์ 2์ฐจ์ ์ ์ ๋ฐฐ์ด attacks
๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๋ชจ๋ ๊ณต๊ฒฉ์ด ๋๋ ์งํ ๋จ์ ์ฒด๋ ฅ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ๋ง์ฝ ๋ชฌ์คํฐ์ ๊ณต๊ฒฉ์ ๋ฐ๊ณ ์บ๋ฆญํฐ์ ์ฒด๋ ฅ์ด 0 ์ดํ๊ฐ ๋์ด ์ฃฝ๋๋ค๋ฉด -1์ return ํด์ฃผ์ธ์.
bandage
๋ [์์ ์๊ฐ
, ์ด๋น ํ๋ณต๋
, ์ถ๊ฐ ํ๋ณต๋
] ํํ์ ๊ธธ์ด๊ฐ 3์ธ ์ ์ ๋ฐฐ์ด์
๋๋ค.์์ ์๊ฐ
= t
โค 50์ด๋น ํ๋ณต๋
= x
โค 100์ถ๊ฐ ํ๋ณต๋
= y
โค 100health
โค 1,000attacks
์ ๊ธธ์ด โค 100attacks[i]
๋ [๊ณต๊ฒฉ ์๊ฐ
, ํผํด๋
] ํํ์ ๊ธธ์ด๊ฐ 2์ธ ์ ์ ๋ฐฐ์ด์
๋๋ค.attacks
๋ ๊ณต๊ฒฉ ์๊ฐ
์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋ ์ํ์
๋๋ค.attacks
์ ๊ณต๊ฒฉ ์๊ฐ
์ ๋ชจ๋ ๋ค๋ฆ
๋๋ค.๊ณต๊ฒฉ ์๊ฐ
โค 1,000ํผํด๋
โค 100bandage | health | attacks | result |
---|---|---|---|
[5, 1, 5] | 30 | [[2, 10], [9, 15], [10, 5], [11, 5]] | 5 |
[3, 2, 7] | 20 | [[1, 15], [5, 16], [8, 6]] | -1 |
[4, 2, 7] | 20 | [[1, 15], [5, 16], [8, 6]] | -1 |
[1, 1, 1] | 5 | [[1, 2], [3, 2]] | 3 |
์ ์ถ๋ ฅ ์ #1
๋ชฌ์คํฐ์ ๋ง์ง๋ง ๊ณต๊ฒฉ์ 11์ด์ ์ด๋ฃจ์ด์ง๋๋ค. 0์ด๋ถํฐ 11์ด๊น์ง ์บ๋ฆญํฐ์ ์ํ๋ ์๋ ํ์ ๊ฐ์ต๋๋ค.
์๊ฐ | ํ์ฌ ์ฒด๋ ฅ(๋ณํ๋) | ์ฐ์ ์ฑ๊ณต | ๊ณต๊ฒฉ | ์ค๋ช |
---|---|---|---|---|
0 | 30 | 0 | X | ์ด๊ธฐ ์ํ |
1 | 30(+0) | 1 | X | ์ต๋ ์ฒด๋ ฅ ์ด์์ ์ฒด๋ ฅ์ ๊ฐ์ง ์ ์์ต๋๋ค. |
2 | 20(-10) | 0 | O | ๋ชฌ์คํฐ์ ๊ณต๊ฒฉ์ผ๋ก ์ฐ์ ์ฑ๊ณต์ด ์ด๊ธฐํ๋ฉ๋๋ค. |
3 | 21(+1) | 1 | X | |
4 | 22(+1) | 2 | X | |
5 | 23(+1) | 3 | X | |
6 | 24(+1) | 4 | X | |
7 | 30(+6) | 5 โ 0 | X | 5์ด ์ฐ์ ์ฑ๊ณตํด ์ฒด๋ ฅ์ 5๋งํผ ์ถ๊ฐ ํ๋ณตํ๊ณ ์ฐ์ ์ฑ๊ณต์ด ์ด๊ธฐํ๋ฉ๋๋ค. |
8 | 30(+0) | 1 | X | ์ต๋ ์ฒด๋ ฅ ์ด์์ ์ฒด๋ ฅ์ ๊ฐ์ง ์ ์์ต๋๋ค. |
9 | 15(-15) | 0 | O | ๋ชฌ์คํฐ์ ๊ณต๊ฒฉ์ผ๋ก ์ฐ์ ์ฑ๊ณต์ด ์ด๊ธฐํ๋ฉ๋๋ค. |
10 | 10(-5) | 0 | O | ๋ชฌ์คํฐ์ ๊ณต๊ฒฉ์ผ๋ก ์ฐ์ ์ฑ๊ณต์ด ์ด๊ธฐํ๋ฉ๋๋ค. |
11 | 5(-5) | 0 | O | ๋ชฌ์คํฐ์ ๋ง์ง๋ง ๊ณต๊ฒฉ์ ๋๋ค. |
๋ชฌ์คํฐ์ ๋ง์ง๋ง ๊ณต๊ฒฉ ์งํ ์บ๋ฆญํฐ์ ์ฒด๋ ฅ์ 5์
๋๋ค. ๋ฐ๋ผ์ 5
์ return ํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
๋ชฌ์คํฐ์ ๋ง์ง๋ง ๊ณต๊ฒฉ์ 8์ด์ ์ด๋ฃจ์ด์ง๋๋ค. 0์ด๋ถํฐ 8์ด๊น์ง ์บ๋ฆญํฐ์ ์ํ๋ ์๋ ํ์ ๊ฐ์ต๋๋ค.
์๊ฐ | ํ์ฌ ์ฒด๋ ฅ(๋ณํ๋) | ์ฐ์ ์ฑ๊ณต | ๊ณต๊ฒฉ | ์ค๋ช |
---|---|---|---|---|
0 | 20 | 0 | X | ์ด๊ธฐ ์ํ |
1 | 5(-15) | 0 | O | ๋ชฌ์คํฐ์ ๊ณต๊ฒฉ์ผ๋ก ์ฐ์ ์ฑ๊ณต์ด ์ด๊ธฐํ๋ฉ๋๋ค. |
2 | 7(+2) | 1 | X | |
3 | 9(+2) | 2 | X | |
4 | 18(+9) | 3 โ 0 | X | 3์ด ์ฐ์ ์ฑ๊ณตํด ์ฒด๋ ฅ์ 7๋งํผ ์ถ๊ฐ ํ๋ณตํ๊ณ ์ฐ์ ์ฑ๊ณต์ด ์ด๊ธฐํ๋ฉ๋๋ค. |
5 | 2(-16) | 0 | O | ๋ชฌ์คํฐ์ ๊ณต๊ฒฉ์ผ๋ก ์ฐ์ ์ฑ๊ณต์ด ์ด๊ธฐํ๋ฉ๋๋ค. |
6 | 4(+2) | 1 | X | |
7 | 6(+2) | 2 | X | |
8 | 0(-6) | 0 | O | ๋ชฌ์คํฐ์ ๋ง์ง๋ง ๊ณต๊ฒฉ์ ๋ฐ์ ์บ๋ฆญํฐ์ ์ฒด๋ ฅ์ด 0 ์ดํ๊ฐ ๋ฉ๋๋ค. |
๋ชฌ์คํฐ์ ๊ณต๊ฒฉ์ ๋ฐ์ ์บ๋ฆญํฐ์ ์ฒด๋ ฅ์ด 0 ์ดํ๊ฐ ๋ฉ๋๋ค. ๋ฐ๋ผ์ -1
์ return ํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #3
๋ชฌ์คํฐ์ ๋ง์ง๋ง ๊ณต๊ฒฉ์ 8์ด์ ์ด๋ฃจ์ด์ง๋๋ค. 0์ด๋ถํฐ 5์ด๊น์ง ์บ๋ฆญํฐ์ ์ํ๋ ์๋ ํ์ ๊ฐ์ต๋๋ค.
์๊ฐ | ํ์ฌ ์ฒด๋ ฅ(๋ณํ๋) | ์ฐ์ ์ฑ๊ณต | ๊ณต๊ฒฉ | ์ค๋ช |
---|---|---|---|---|
0 | 20 | 0 | X | ์ด๊ธฐ ์ํ |
1 | 5(-15) | 0 | O | ๋ชฌ์คํฐ์ ๊ณต๊ฒฉ์ผ๋ก ์ฐ์ ์ฑ๊ณต์ด ์ด๊ธฐํ๋ฉ๋๋ค. |
2 | 7(+2) | 1 | X | |
3 | 9(+2) | 2 | X | |
4 | 11(+2) | 3 | X | |
5 | -5(-16) | 0 | O | ๋ชฌ์คํฐ์ ๊ณต๊ฒฉ์ ๋ฐ์ ์บ๋ฆญํฐ์ ์ฒด๋ ฅ์ด 0 ์ดํ๊ฐ ๋ฉ๋๋ค. |
๋ชฌ์คํฐ์ ๊ณต๊ฒฉ์ ๋ฐ์ ์บ๋ฆญํฐ์ ์ฒด๋ ฅ์ด 0 ์ดํ๊ฐ ๋ฉ๋๋ค. ๋ฐ๋ผ์ -1
์ return ํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #4
๋ชฌ์คํฐ์ ๋ง์ง๋ง ๊ณต๊ฒฉ์ 3์ด์ ์ด๋ฃจ์ด์ง๋๋ค. 0์ด๋ถํฐ 3์ด๊น์ง ์บ๋ฆญํฐ์ ์ํ๋ ์๋ ํ์ ๊ฐ์ต๋๋ค.
์๊ฐ | ํ์ฌ ์ฒด๋ ฅ(๋ณํ๋) | ์ฐ์ ์ฑ๊ณต | ๊ณต๊ฒฉ | ์ค๋ช |
---|---|---|---|---|
0 | 5 | 0 | X | ์ด๊ธฐ ์ํ |
1 | 3(-2) | 0 | O | ๋ชฌ์คํฐ์ ๊ณต๊ฒฉ์ผ๋ก ์ฐ์ ์ฑ๊ณต์ด ์ด๊ธฐํ๋ฉ๋๋ค. |
2 | 5(+2) | 1 โ 0 | X | 1์ด ์ฐ์ ์ฑ๊ณตํด ์ฒด๋ ฅ์ 1๋งํผ ์ถ๊ฐ ํ๋ณตํ๊ณ ์ฐ์ ์ฑ๊ณต์ด ์ด๊ธฐํ๋ฉ๋๋ค. |
3 | 3(-2) | 0 | O | ๋ชฌ์คํฐ์ ๋ง์ง๋ง ๊ณต๊ฒฉ์ ๋๋ค. |
๋ชฌ์คํฐ์ ๋ง์ง๋ง ๊ณต๊ฒฉ ์งํ ์บ๋ฆญํฐ์ ์ฒด๋ ฅ์ 3์
๋๋ค. ๋ฐ๋ผ์ 3
์ return ํด์ผ ํฉ๋๋ค.
def solution(bandage, health, attacks):
j = 0
counter = 0
max = health
for sec in range(1, attacks[-1][0] + 1): # ๊ฐ์ฅ ๋ง์ง๋ง ๊ณต๊ฒฉ ์๊ฐ๊น์ง ๋ฐ๋ณต
counter += 1
if (health >= max): # ์ด์ ์ ํ๋ณตํ ์ฒด๋ ฅ์ด ์ต๋ ์ฒด๋ ฅ์ ๋์ด์ฐ์ ๊ฒฝ์ฐ ์ต๋ ์ฒด๋ ฅ์ผ๋ก ์ด๊ธฐํ
health = max
if (health <= 0): # ๋จ์ ์ฒด๋ ฅ์ด 0๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋
return -1
elif (sec == attacks[j][0]): # ๊ณต๊ฒฉ์ ๋ฐ์์ ๋ (ํ์ฌ ์ด์ ๊ณต๊ฒฉ ์๊ฐ์ด ๊ฐ์ ๋)
health -= attacks[j][1]
j += 1
counter = 0
if (health <= 0): # ๋จ์ ์ฒด๋ ฅ์ด 0๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋
return -1
elif (counter == bandage[0]): # ์ฐ์ ํ๋ณต์ ์ฑ๊ณตํ์ ๋
health += bandage[1] + bandage[2]
counter = 0
else: #๊ณต๊ฒฉ์ ๋ฐ์ง ์์์ ๋
health += bandage[1]
return health