๐Ÿ” ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - [PCCP ๊ธฐ์ถœ๋ฌธ์ œ] 1๋ฒˆ / ๋ถ•๋Œ€ ๊ฐ๊ธฐ | ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์Šค์ฟจ

kk_0128_ยท2025๋…„ 4์›” 7์ผ
0

์ฝ”๋”ฉํ…Œ์ŠคํŠธ

๋ชฉ๋ก ๋ณด๊ธฐ
1/8
post-thumbnail

๋ฌธ์ œ ์„ค๋ช…

์–ด๋–ค ๊ฒŒ์ž„์—๋Š” ๋ถ•๋Œ€ ๊ฐ๊ธฐ๋ผ๋Š” ๊ธฐ์ˆ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถ•๋Œ€ ๊ฐ๊ธฐ๋Š” t์ดˆ ๋™์•ˆ ๋ถ•๋Œ€๋ฅผ ๊ฐ์œผ๋ฉด์„œ 1์ดˆ๋งˆ๋‹ค x๋งŒํผ์˜ ์ฒด๋ ฅ์„ ํšŒ๋ณตํ•ฉ๋‹ˆ๋‹ค. t์ดˆ ์—ฐ์†์œผ๋กœ ๋ถ•๋Œ€๋ฅผ ๊ฐ๋Š” ๋ฐ ์„ฑ๊ณตํ•œ๋‹ค๋ฉด y๋งŒํผ์˜ ์ฒด๋ ฅ์„ ์ถ”๊ฐ€๋กœ ํšŒ๋ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์บ๋ฆญํ„ฐ์—๋Š” ์ตœ๋Œ€ ์ฒด๋ ฅ์ด ์กด์žฌํ•ด ํ˜„์žฌ ์ฒด๋ ฅ์ด ์ตœ๋Œ€ ์ฒด๋ ฅ๋ณด๋‹ค ์ปค์ง€๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์ˆ ์„ ์“ฐ๋Š” ๋„์ค‘ ๋ชฌ์Šคํ„ฐ์—๊ฒŒ ๊ณต๊ฒฉ์„ ๋‹นํ•˜๋ฉด ๊ธฐ์ˆ ์ด ์ทจ์†Œ๋˜๊ณ , ๊ณต๊ฒฉ์„ ๋‹นํ•˜๋Š” ์ˆœ๊ฐ„์—๋Š” ์ฒด๋ ฅ์„ ํšŒ๋ณตํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ชฌ์Šคํ„ฐ์—๊ฒŒ ๊ณต๊ฒฉ๋‹นํ•ด ๊ธฐ์ˆ ์ด ์ทจ์†Œ๋‹นํ•˜๊ฑฐ๋‚˜ ๊ธฐ์ˆ ์ด ๋๋‚˜๋ฉด ๊ทธ ์ฆ‰์‹œ ๋ถ•๋Œ€ ๊ฐ๊ธฐ๋ฅผ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜๋ฉฐ, ์—ฐ์† ์„ฑ๊ณต ์‹œ๊ฐ„์ด 0์œผ๋กœ ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.

๋ชฌ์Šคํ„ฐ์˜ ๊ณต๊ฒฉ์„ ๋ฐ›์œผ๋ฉด ์ •ํ•ด์ง„ ํ”ผํ•ด๋Ÿ‰๋งŒํผ ํ˜„์žฌ ์ฒด๋ ฅ์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค. ์ด๋•Œ, ํ˜„์žฌ ์ฒด๋ ฅ์ด 0 ์ดํ•˜๊ฐ€ ๋˜๋ฉด ์บ๋ฆญํ„ฐ๊ฐ€ ์ฃฝ์œผ๋ฉฐ ๋” ์ด์ƒ ์ฒด๋ ฅ์„ ํšŒ๋ณตํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ๋ถ•๋Œ€๊ฐ๊ธฐ ๊ธฐ์ˆ ์˜ ์ •๋ณด, ์บ๋ฆญํ„ฐ๊ฐ€ ๊ฐ€์ง„ ์ตœ๋Œ€ ์ฒด๋ ฅ๊ณผ ๋ชฌ์Šคํ„ฐ์˜ ๊ณต๊ฒฉ ํŒจํ„ด์ด ์ฃผ์–ด์งˆ ๋•Œ ์บ๋ฆญํ„ฐ๊ฐ€ ๋๊นŒ์ง€ ์ƒ์กดํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

๋ถ•๋Œ€ ๊ฐ๊ธฐ ๊ธฐ์ˆ ์˜ ์‹œ์ „ ์‹œ๊ฐ„, 1์ดˆ๋‹น ํšŒ๋ณต๋Ÿ‰, ์ถ”๊ฐ€ ํšŒ๋ณต๋Ÿ‰์„ ๋‹ด์€ 1์ฐจ์› ์ •์ˆ˜ ๋ฐฐ์—ด bandage์™€ ์ตœ๋Œ€ ์ฒด๋ ฅ์„ ์˜๋ฏธํ•˜๋Š” ์ •์ˆ˜ health, ๋ชฌ์Šคํ„ฐ์˜ ๊ณต๊ฒฉ ์‹œ๊ฐ„๊ณผ ํ”ผํ•ด๋Ÿ‰์„ ๋‹ด์€ 2์ฐจ์› ์ •์ˆ˜ ๋ฐฐ์—ด attacks๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ณต๊ฒฉ์ด ๋๋‚œ ์งํ›„ ๋‚จ์€ ์ฒด๋ ฅ์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”. ๋งŒ์•ฝ ๋ชฌ์Šคํ„ฐ์˜ ๊ณต๊ฒฉ์„ ๋ฐ›๊ณ  ์บ๋ฆญํ„ฐ์˜ ์ฒด๋ ฅ์ด 0 ์ดํ•˜๊ฐ€ ๋˜์–ด ์ฃฝ๋Š”๋‹ค๋ฉด -1์„ return ํ•ด์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • bandage๋Š” [์‹œ์ „ ์‹œ๊ฐ„, ์ดˆ๋‹น ํšŒ๋ณต๋Ÿ‰, ์ถ”๊ฐ€ ํšŒ๋ณต๋Ÿ‰] ํ˜•ํƒœ์˜ ๊ธธ์ด๊ฐ€ 3์ธ ์ •์ˆ˜ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
    • 1 โ‰ค ์‹œ์ „ ์‹œ๊ฐ„ = t โ‰ค 50
    • 1 โ‰ค ์ดˆ๋‹น ํšŒ๋ณต๋Ÿ‰ = x โ‰ค 100
    • 1 โ‰ค ์ถ”๊ฐ€ ํšŒ๋ณต๋Ÿ‰ = y โ‰ค 100
  • 1 โ‰ค health โ‰ค 1,000
  • 1 โ‰ค attacks์˜ ๊ธธ์ด โ‰ค 100
    • attacks[i]๋Š” [๊ณต๊ฒฉ ์‹œ๊ฐ„, ํ”ผํ•ด๋Ÿ‰] ํ˜•ํƒœ์˜ ๊ธธ์ด๊ฐ€ 2์ธ ์ •์ˆ˜ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
    • attacks๋Š” ๊ณต๊ฒฉ ์‹œ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ๋œ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.
    • attacks์˜ ๊ณต๊ฒฉ ์‹œ๊ฐ„์€ ๋ชจ๋‘ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
    • 1 โ‰ค ๊ณต๊ฒฉ ์‹œ๊ฐ„ โ‰ค 1,000
    • 1 โ‰ค ํ”ผํ•ด๋Ÿ‰ โ‰ค 100

์ž…์ถœ๋ ฅ ์˜ˆ

bandagehealthattacksresult
[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์ดˆ๊นŒ์ง€ ์บ๋ฆญํ„ฐ์˜ ์ƒํƒœ๋Š” ์•„๋ž˜ ํ‘œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„ํ˜„์žฌ ์ฒด๋ ฅ(๋ณ€ํ™”๋Ÿ‰)์—ฐ์† ์„ฑ๊ณต๊ณต๊ฒฉ์„ค๋ช…
0300X์ดˆ๊ธฐ ์ƒํƒœ
130(+0)1X์ตœ๋Œ€ ์ฒด๋ ฅ ์ด์ƒ์˜ ์ฒด๋ ฅ์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
220(-10)0O๋ชฌ์Šคํ„ฐ์˜ ๊ณต๊ฒฉ์œผ๋กœ ์—ฐ์† ์„ฑ๊ณต์ด ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.
321(+1)1X
422(+1)2X
523(+1)3X
624(+1)4X
730(+6)5 โ†’ 0X5์ดˆ ์—ฐ์† ์„ฑ๊ณตํ•ด ์ฒด๋ ฅ์„ 5๋งŒํผ ์ถ”๊ฐ€ ํšŒ๋ณตํ•˜๊ณ  ์—ฐ์† ์„ฑ๊ณต์ด ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.
830(+0)1X์ตœ๋Œ€ ์ฒด๋ ฅ ์ด์ƒ์˜ ์ฒด๋ ฅ์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
915(-15)0O๋ชฌ์Šคํ„ฐ์˜ ๊ณต๊ฒฉ์œผ๋กœ ์—ฐ์† ์„ฑ๊ณต์ด ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.
1010(-5)0O๋ชฌ์Šคํ„ฐ์˜ ๊ณต๊ฒฉ์œผ๋กœ ์—ฐ์† ์„ฑ๊ณต์ด ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.
115(-5)0O๋ชฌ์Šคํ„ฐ์˜ ๋งˆ์ง€๋ง‰ ๊ณต๊ฒฉ์ž…๋‹ˆ๋‹ค.

๋ชฌ์Šคํ„ฐ์˜ ๋งˆ์ง€๋ง‰ ๊ณต๊ฒฉ ์งํ›„ ์บ๋ฆญํ„ฐ์˜ ์ฒด๋ ฅ์€ 5์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 5์„ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

๋ชฌ์Šคํ„ฐ์˜ ๋งˆ์ง€๋ง‰ ๊ณต๊ฒฉ์€ 8์ดˆ์— ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. 0์ดˆ๋ถ€ํ„ฐ 8์ดˆ๊นŒ์ง€ ์บ๋ฆญํ„ฐ์˜ ์ƒํƒœ๋Š” ์•„๋ž˜ ํ‘œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„ํ˜„์žฌ ์ฒด๋ ฅ(๋ณ€ํ™”๋Ÿ‰)์—ฐ์† ์„ฑ๊ณต๊ณต๊ฒฉ์„ค๋ช…
0200X์ดˆ๊ธฐ ์ƒํƒœ
15(-15)0O๋ชฌ์Šคํ„ฐ์˜ ๊ณต๊ฒฉ์œผ๋กœ ์—ฐ์† ์„ฑ๊ณต์ด ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.
27(+2)1X
39(+2)2X
418(+9)3 โ†’ 0X3์ดˆ ์—ฐ์† ์„ฑ๊ณตํ•ด ์ฒด๋ ฅ์„ 7๋งŒํผ ์ถ”๊ฐ€ ํšŒ๋ณตํ•˜๊ณ  ์—ฐ์† ์„ฑ๊ณต์ด ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.
52(-16)0O๋ชฌ์Šคํ„ฐ์˜ ๊ณต๊ฒฉ์œผ๋กœ ์—ฐ์† ์„ฑ๊ณต์ด ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.
64(+2)1X
76(+2)2X
80(-6)0O๋ชฌ์Šคํ„ฐ์˜ ๋งˆ์ง€๋ง‰ ๊ณต๊ฒฉ์„ ๋ฐ›์•„ ์บ๋ฆญํ„ฐ์˜ ์ฒด๋ ฅ์ด 0 ์ดํ•˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋ชฌ์Šคํ„ฐ์˜ ๊ณต๊ฒฉ์„ ๋ฐ›์•„ ์บ๋ฆญํ„ฐ์˜ ์ฒด๋ ฅ์ด 0 ์ดํ•˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ -1์„ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #3

๋ชฌ์Šคํ„ฐ์˜ ๋งˆ์ง€๋ง‰ ๊ณต๊ฒฉ์€ 8์ดˆ์— ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. 0์ดˆ๋ถ€ํ„ฐ 5์ดˆ๊นŒ์ง€ ์บ๋ฆญํ„ฐ์˜ ์ƒํƒœ๋Š” ์•„๋ž˜ ํ‘œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„ํ˜„์žฌ ์ฒด๋ ฅ(๋ณ€ํ™”๋Ÿ‰)์—ฐ์† ์„ฑ๊ณต๊ณต๊ฒฉ์„ค๋ช…
0200X์ดˆ๊ธฐ ์ƒํƒœ
15(-15)0O๋ชฌ์Šคํ„ฐ์˜ ๊ณต๊ฒฉ์œผ๋กœ ์—ฐ์† ์„ฑ๊ณต์ด ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.
27(+2)1X
39(+2)2X
411(+2)3X
5-5(-16)0O๋ชฌ์Šคํ„ฐ์˜ ๊ณต๊ฒฉ์„ ๋ฐ›์•„ ์บ๋ฆญํ„ฐ์˜ ์ฒด๋ ฅ์ด 0 ์ดํ•˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋ชฌ์Šคํ„ฐ์˜ ๊ณต๊ฒฉ์„ ๋ฐ›์•„ ์บ๋ฆญํ„ฐ์˜ ์ฒด๋ ฅ์ด 0 ์ดํ•˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ -1์„ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #4

๋ชฌ์Šคํ„ฐ์˜ ๋งˆ์ง€๋ง‰ ๊ณต๊ฒฉ์€ 3์ดˆ์— ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. 0์ดˆ๋ถ€ํ„ฐ 3์ดˆ๊นŒ์ง€ ์บ๋ฆญํ„ฐ์˜ ์ƒํƒœ๋Š” ์•„๋ž˜ ํ‘œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„ํ˜„์žฌ ์ฒด๋ ฅ(๋ณ€ํ™”๋Ÿ‰)์—ฐ์† ์„ฑ๊ณต๊ณต๊ฒฉ์„ค๋ช…
050X์ดˆ๊ธฐ ์ƒํƒœ
13(-2)0O๋ชฌ์Šคํ„ฐ์˜ ๊ณต๊ฒฉ์œผ๋กœ ์—ฐ์† ์„ฑ๊ณต์ด ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.
25(+2)1 โ†’ 0X1์ดˆ ์—ฐ์† ์„ฑ๊ณตํ•ด ์ฒด๋ ฅ์„ 1๋งŒํผ ์ถ”๊ฐ€ ํšŒ๋ณตํ•˜๊ณ  ์—ฐ์† ์„ฑ๊ณต์ด ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.
33(-2)0O๋ชฌ์Šคํ„ฐ์˜ ๋งˆ์ง€๋ง‰ ๊ณต๊ฒฉ์ž…๋‹ˆ๋‹ค.

๋ชฌ์Šคํ„ฐ์˜ ๋งˆ์ง€๋ง‰ ๊ณต๊ฒฉ ์งํ›„ ์บ๋ฆญํ„ฐ์˜ ์ฒด๋ ฅ์€ 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
profile
๊ณต๋ถ€ ๋…ธํŠธ ๊ฒธ ๊ธฐ๋ก์žฅ

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด