Dev.Beth
๐Ÿ๐Ÿ’ป๐Ÿ
Dev.Beth
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (175)
    • ๐Ÿค” PS(Problem Solving) (119)
      • ๋ฐฑ์ค€(BOJ) (59)
      • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (47)
      • Leet, ๊ตฌ๋ฆ„ (6)
      • ์ฝ”ํ…Œ (7)
    • ๐Ÿ› ๏ธ ํˆด, ๊ทธ์™ธ (10)
    • ๐Ÿ•ท๏ธ ์—๋Ÿฌ, ๋ฒ„๊ทธ (15)
    • โœ๏ธ ์ด๋ก  (30)
      • ์ด๋ก , ์„ค๊ณ„ (3)
      • ๋””์ž์ธํŒจํ„ด (1)
      • ์ž๋ฃŒ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜ (13)
      • ๋„คํŠธ์›Œํฌ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (11)
      • ๊ฐœ๋ฐœ์„œ (2)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • WRITE
  • ADMIN

๊ณต์ง€์‚ฌํ•ญ

  • ๐Ÿต PS challenge

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์‚ผ์„ฑ ํ™”๋ฉด ๋ฉˆ์ถค
  • 2293 c++
  • ๋ฐฑ์ค€
  • c++ 2294
  • ๋ฐฑ์ค€ 2294
  • ๊ฐค๋Ÿญ์‹œ ์žฌ๋ถ€ํŒ…
  • 2294 c++
  • ๋ฐฑ์ค€ c++
  • 2294 ๋ฐฑ์ค€ c++
  • 1509 c++
  • ๋ฐฑ์ค€ 1509 c++
  • ๋ฐฑ์ค€ 1520 c++
  • Retrofit ํ•œ๊ธ€๊นจ์ง
  • ๊ฐค๋Ÿญ์‹œ ๊ฐ•์ œ ์žฌ๋ถ€ํŒ…
  • ๋ฐฑ์ค€ 2294 c++
  • ๊ฐค๋Ÿญ์‹œ ๋ฉˆ์ถค
  • ๋ฐฑ์ค€ c++ 2293
  • ๋ฐฑ์ค€ 2240
  • 2294
  • Retrofit ํ•œ๊ธ€ ๊นจ์ง
  • ๊ฐค๋Ÿญ์‹œ ๋ฆฌ๋ถ€ํŒ…
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋„คํŠธ์›Œํฌ java
  • ๊ฐค๋Ÿญ์‹œ ๊ฒ€์€ํ™”๋ฉด ์žฌ๋ถ€ํŒ…
  • 1520 c++
  • ๊ฐค๋Ÿญ์‹œ ๊ฒ€์€ํ™”๋ฉด
  • boj 2293
  • boj 1509 c++
  • ๋ฐฑ์ค€ 2293
  • 2293
  • Retrofit Post ํ•œ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Dev.Beth

๐Ÿ๐Ÿ’ป๐Ÿ

[๋ฐฑ์ค€/c++] 1520๋ฒˆ - ๋‚ด๋ฆฌ๋ง‰ ๊ธธ
๐Ÿค” PS(Problem Solving)/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€/c++] 1520๋ฒˆ - ๋‚ด๋ฆฌ๋ง‰ ๊ธธ

2019. 8. 11. 19:03
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ


๋ฌธ์ œ

์—ฌํ–‰์„ ๋– ๋‚œ ์„ธ์ค€์ด๋Š” ์ง€๋„๋ฅผ ํ•˜๋‚˜ ๊ตฌํ•˜์˜€๋‹ค. ์ด ์ง€๋„๋Š” ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ง์‚ฌ๊ฐํ˜• ๋ชจ์–‘์ด๋ฉฐ ์—ฌ๋Ÿฌ ์นธ์œผ๋กœ ๋‚˜๋‰˜์–ด์ ธ ์žˆ๋‹ค. ํ•œ ์นธ์€ ํ•œ ์ง€์ ์„ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ ๊ฐ ์นธ์—๋Š” ๊ทธ ์ง€์ ์˜ ๋†’์ด๊ฐ€ ์“ฐ์—ฌ ์žˆ์œผ๋ฉฐ, ๊ฐ ์ง€์  ์‚ฌ์ด์˜ ์ด๋™์€ ์ง€๋„์—์„œ ์ƒํ•˜์ขŒ์šฐ ์ด์›ƒํ•œ ๊ณณ๋ผ๋ฆฌ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.



ํ˜„์žฌ ์ œ์ผ ์™ผ์ชฝ ์œ„ ์นธ์ด ๋‚˜ํƒ€๋‚ด๋Š” ์ง€์ ์— ์žˆ๋Š” ์„ธ์ค€์ด๋Š” ์ œ์ผ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜ ์นธ์ด ๋‚˜ํƒ€๋‚ด๋Š” ์ง€์ ์œผ๋กœ ๊ฐ€๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ฐ€๋Šฅํ•œ ํž˜์„ ์ ๊ฒŒ ๋“ค์ด๊ณ  ์‹ถ์–ด ํ•ญ์ƒ ๋†’์ด๊ฐ€ ๋” ๋‚ฎ์€ ์ง€์ ์œผ๋กœ๋งŒ ์ด๋™ํ•˜์—ฌ ๋ชฉํ‘œ ์ง€์ ๊นŒ์ง€ ๊ฐ€๊ณ ์ž ํ•œ๋‹ค. ์œ„์™€ ๊ฐ™์€ ์ง€๋„์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ธ ๊ฐ€์ง€ ๊ฒฝ๋กœ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.



์ง€๋„๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ์ด์™€ ๊ฐ™์ด ์ œ์ผ ์™ผ์ชฝ ์œ„ ์ง€์ ์—์„œ ์ถœ๋ฐœํ•˜์—ฌ ์ œ์ผ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜ ์ง€์ ๊นŒ์ง€ ํ•ญ์ƒ ๋‚ด๋ฆฌ๋ง‰๊ธธ๋กœ๋งŒ ์ด๋™ํ•˜๋Š” ๊ฒฝ๋กœ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.


์ž…๋ ฅ

์ฒซ์งธ ์ค„์—๋Š” ์ง€๋„์˜ ์„ธ๋กœ์˜ ํฌ๊ธฐ M๊ณผ ๊ฐ€๋กœ์˜ ํฌ๊ธฐ N์ด ๋นˆ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. ์ด์–ด ๋‹ค์Œ M๊ฐœ ์ค„์— ๊ฑธ์ณ ํ•œ ์ค„์— N๊ฐœ์”ฉ ์œ„์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ๊ฐ ์ง€์ ์˜ ๋†’์ด๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. M๊ณผ N์€ ๊ฐ๊ฐ 500์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๊ณ , ๊ฐ ์ง€์ ์˜ ๋†’์ด๋Š” 10000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค.


์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ด๋™ ๊ฐ€๋Šฅํ•œ ๊ฒฝ๋กœ์˜ ์ˆ˜ H๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋ชจ๋“  ์ž…๋ ฅ์— ๋Œ€ํ•˜์—ฌ H๋Š” 10์–ต ์ดํ•˜์˜ ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜์ด๋‹ค.


ํ’€์ด๊ณผ์ •


1.๊ทœ์น™

  • dp์ด๋ฏ€๋กœ ์ ํ™”์‹๊ณผ ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์™ผ์ชฝ ์œ„ (1,1)์—์„œ ์ถœ๋ฐœํ•˜์—ฌ ์ œ์ผ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜(M,N) ๊นŒ์ง€ ํ•ญ์ƒ ๋‚ด๋ฆฌ๋ง‰๊ธธ๋กœ๋งŒ ์ด๋™ํ•˜๋Š” ๊ฒฝ๋กœ์˜ ๊ฐฏ์ˆ˜๋ฅผ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
  • ์ž…๋ ฅ์€ 10์–ต ์ดํ•˜์˜ ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
  • ์„ธ์ค€์ด๋Š” M,N์•ˆ์—์„œ๋งŒ ์›€์ง์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


2.์ˆœ์„œ

๋จผ์ €, ์ž…๋ ฅ์€ 10์–ต ์ดํ•˜์˜ ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฏ€๋กœ -2,147,483,648 ~2.147.483.647์˜ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง€๋Š” int๋ฅผ ๋ฉ”๋ชจ์ด์ œ์ด์…˜ ์ž๋ฃŒํ˜•์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์„ธ์ค€์ด๊ฐ€ dp[i][j] ์ง€์ ์— ์žˆ์„๋•Œ, ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉํ–ฅ์€ ์ƒ, ํ•˜, ์ขŒ, ์šฐ ์ž…๋‹ˆ๋‹ค.

์ฆ‰, ์ขŒํ‘œ๋กœ ํ‘œํ˜„ํ•ด ๋ณด๋ฉด


์ด๋ฏ€๋กœ, ํ•ด๋‹น ์ขŒํ‘œ๋ฅผ 2์ฐจ๋ฐฐ์—ด์— ๋ฏธ๋ฆฌ ์ดˆ๊ธฐํ™” ํ•ด๋†“์Šต๋‹ˆ๋‹ค.

int dir[4][2] = { {-1,0},{1,0},{0,-1},{0,1} };

์ดํ›„ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ํ˜„์žฌ ( i , j )์ขŒํ‘œ๊ฐ€ ์ƒ,ํ•˜,์ขŒ,์šฐ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ฒดํฌํ•˜๊ณ 

( M , N )๊นŒ์ง€ ๋„์ฐฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ๊ฐ€ ์žˆ์„ ๋•Œ ๋งˆ๋‹ค, dp[i][j]๋ฅผ 1์”ฉ ์ฆ๊ฐํ•ด์ฃผ๋ฉด ์ •๋‹ต์ด ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


์˜ˆ๋ฅผ๋“ค์–ด,

map[1][1]=50 ์—์„œ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉํ–ฅ์€ 45(์˜ค๋ฅธ์ชฝ), 35(์•„๋žซ์ชฝ)์ž…๋‹ˆ๋‹ค.

์•„๋žซ์ชฝ๋ถ€ํ„ฐ ์ง„ํ–‰ํ–ˆ์„๋•Œ map[2][1]=35์—์„œ ๋˜ํ•œ๋ฒˆ ์ƒ,ํ•˜,์ขŒ,์šฐ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉํ–ฅ์„ ์ฒดํฌํ•˜๊ณ 

35๋ณด๋‹ค ๊ฐ’์ด ์ž‘์€ ์•„๋žซ์ชฝ map[3][1]=30์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ map[3][1]์—์„œ๋„ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ ๊ณ„์† ์ƒ,ํ•˜,์ขŒ,์šฐ๋ฅผ ์ฒดํฌํ•˜๋ฉฐ 27, 24, 22, 15 ๊นŒ์ง€ ์ด๋™ํ•˜๋‹ค๊ฐ€,

๋งˆ์ง€๋ง‰์นธ์ธ map[4][5]=10 ์— ๋„์ฐฉํ•œ๋‹ค๋ฉด 1์„ ๋ฆฌํ„ดํ•˜๋ฉฐ dp[i][j]์— 1์„ ์ฆ๊ฐํ•ด์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


์ดํ›„ map[1][1]=50์˜ ์˜ค๋ฅธ์ชฝ์ธ map[1][2]=45๋„ ๋งˆ์ € ์ง„ํ–‰ํ•˜๋ฉด dp[i][j]๋Š” ์ •๋‹ต์ธ 3์ด ๋ฉ๋‹ˆ๋‹ค.


๋”ฐ๋ผ์„œ, ์ ํ™”์‹์€


(new_i, new_j๋Š” ์ƒ,ํ•˜,์ขŒ,์šฐ ์ขŒํ‘œ {-1,0},{1,0},{0,-1},{0,1})

if(new_i >= 1 && new_i <= M && new_j >= 1 && new_j <= N)

if(map[i][j] > map[new_i][new_j])

d[i][j] += ์žฌ๊ท€ํ•จ์ˆ˜(new_i, new_j)


๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.


3.์ฝ”๋“œ


๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋™์ผ์กฐ๊ฑด (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿค” PS(Problem Solving) > ๋ฐฑ์ค€(BOJ)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€/c++] 11049๋ฒˆ - ํ–‰๋ ฌ ๊ณฑ์…ˆ ์ˆœ์„œ  (0) 2019.08.17
[๋ฐฑ์ค€/c++] 11066๋ฒˆ - ํŒŒ์ผ ํ•ฉ์น˜๊ธฐ  (0) 2019.08.17
[๋ฐฑ์ค€/c++] 2294๋ฒˆ - ๋™์ „2  (0) 2019.08.11
[๋ฐฑ์ค€/c++] 2293๋ฒˆ - ๋™์ „1  (0) 2019.08.11
[๋ฐฑ์ค€/c++] 1509๋ฒˆ - ํŒฐ๋ฆฐ๋“œ๋กฌ ๋ถ„ํ•   (0) 2019.08.09
    '๐Ÿค” PS(Problem Solving)/๋ฐฑ์ค€(BOJ)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [๋ฐฑ์ค€/c++] 11049๋ฒˆ - ํ–‰๋ ฌ ๊ณฑ์…ˆ ์ˆœ์„œ
    • [๋ฐฑ์ค€/c++] 11066๋ฒˆ - ํŒŒ์ผ ํ•ฉ์น˜๊ธฐ
    • [๋ฐฑ์ค€/c++] 2294๋ฒˆ - ๋™์ „2
    • [๋ฐฑ์ค€/c++] 2293๋ฒˆ - ๋™์ „1
    Dev.Beth
    Dev.Beth
    Beth์˜ ๊ณต๋ถ€ ๋ธ”๋กœ๊ทธ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”