1. ๋ฌธ์ œ๋ฅผ ์ฝ๊ณ  ์ƒ์ˆ˜์กฐ๊ฑด์„ ํ™•์ธํ•˜๊ณ  ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ๋จผ์ € ์ƒ๊ฐํ•œ๋‹ค.

2. 30๋ถ„~1์‹œ๊ฐ„ ๋‚ด์— ์ ‘๊ทผ ๋ฐฉ์‹์ด ์ƒ๊ฐ๋‚˜์ง€ ์•Š์œผ๋ฉด ๋ชจ๋ฅด๋Š” ์ง€์‹์ด๋ฏ€๋กœ ์ •๋‹ต์„ ๋ณด๊ณ  ๊ณต๋ถ€ํ•ด์„œ ํก์ˆ˜ํ•œ๋‹ค.

+ ๊ตฌํ˜„์ด ๋ณต์žกํ•œ ๋ฌธ์ œ๋„ 2์‹œ๊ฐ„์„ ์˜ค๋ฒ„ํ•œ๋‹ค๋ฉด ์ •๋‹ต์„ ๋ณด๊ณ  ๋‹ค์‹œ ํ‘ผ๋‹ค.

3. ์ฝ”๋“œ๋ฅผ ๋‹ค ์ž‘์„ฑํ–ˆ๋‹ค๋ฉด ๋ฐ”๋กœ ์ œ์ถœํ•˜์ง€๋ง๊ณ  ๋ณต์žก๋„ ๋ถ„์„์„ ํ•œ๋‹ค.

4. ํ’€๊ณ  ๋‚˜์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ๋‹ค์–‘ํ•œ ํ’€์ด์™€ ๊น”๋”ํ•œ ์ฝ”๋“œ๋ฅผ ๊ผญ ๊ณต๋ถ€ํ•œ๋‹ค. 

5. ํ’€์—ˆ๋˜ ๋ฌธ์ œ๋Š” ํ•œ๋‹ฌ ์•ˆ์— ์™€์„œ ํ‘ผ๋‹ค. 15๋ถ„ ๋‚ด๋กœ ํ’€ ์ˆ˜ ์žˆ์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. 

 

 

์ด ๊ธ€์€ ๋‹ฌํŒฝ์ด ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๊ฐ€ ๋‚ด๊ฐ€ ํ‹€๋ ธ๋˜ ๋ถ€๋ถ„์„ ์ ๊ฒ€ํ•˜๋Š” ๊ธ€์ด๋‹ค. 

๋‹ค์Œ์— ๋‹ค์‹œ ํ’€๊ธฐ์ „์— ์ด ๊ธ€๋งŒ ์ฝ๊ณ ๋„ ๋ฌธ์ œ์™€ ๊ตฌํ˜„์„ ๋‹ค์‹œ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋„๋ก, 

 

ํ•ด๋‹น ๋ฌธ์ œ๋Š” grid์™€ ๊ฐ™์ด 2์ฐจ์› ๋ฐฐ์—ด๋กœ ์ƒ๊ฒผ์ง€๋งŒ, ์–ด๋–ป๊ฒŒ ํ’€์ดํ•˜๋ƒ์— ๋”ฐ๋ผ grid์— ์ ‘๊ทผํ•ด์•ผํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅด๋‹ค. 

 

0. ๋ณ€์ˆ˜ ์„ค์ • 

    1) ๋‹ฌํŒฝ์ด ์ง‘ ์ดˆ๊ธฐํ™” 

-> ๋‹ฌํŒฝ์ด ์ง‘์ด ๋˜๋Š” 2์ฐจ์› ๋ฐฐ์—ด ์ดˆ๊ธฐํ™” 

grid = [[0]*n for _ in range(n)]

์–ด์ฐจํ”ผ num์œผ๋กœ ์›์†Œ ๊ฐ’์„ ์ฑ„์›Œ์ค„๊ฑฐ๋‹ˆ๊นŒ 0์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•ด๋„ ๋จ 

 

    2) 4๊ฐ€์ง€ ๋ฐฉํ–ฅ ์„ค์ • top, left = 0 , 0 / bottom, right = 0,0 

    3) for๋ฌธ ์•ˆ์—์„œ ์ธ๋ฑ์Šค ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•  row, col์€ ๋”ฐ๋กœ ์ดˆ๊ธฐํ™” ํ•ด์ค„ ํ•„์š”๊ฐ€ ์—†๋‹ค. for๋ฌธ ์•ˆ์—์„œ ๋ฐ”๋กœ ์‚ฌ์šฉํ•ด์ฃผ๋ฉด ๋จ 

 

1. ๋งŒ์•ฝ 4๊ฐ€์ง€ ๋ฐฉํ–ฅ (์œ—์ค„ ์ขŒ-> ์šฐ, ์˜ค๋ฅธ์ชฝ ์ƒ->ํ•˜, ํ•˜๊ฐ• ์˜ค๋ฅธ์ชฝ ์—ด, ์•„๋žซ์ค„ ์šฐ->์ขŒ, ์ƒ์Šน ์ขŒ์ธก ์—ด) ์œผ๋กœ ์„ค์ •ํ–ˆ๋‹ค๋ฉด ๋ฐ˜๋ณต๋ฌธ while ์„ ๋จผ์ € ์„ค์ •ํ•˜๊ณ  ๊ทธ ์•ˆ์—์„œ 4๊ฐ€์ง€ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•˜๋Š” for๋ฌธ์„ 4๊ฐœ ๋งŒ๋“ค์–ด์ค€๋‹ค. 

 

2. ์ดํ›„๋กœ ๊ณ ๋ คํ•  ๊ฒƒ์€ while๋ฌธ ์•ˆ์— ์žˆ๋Š” for๋ฌธ์˜ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•ด์ฃผ๋Š” ๊ฒƒ, 

1) ์œ—์ค„ ํ–‰ ์ขŒ-> ์šฐ,

for col in range(left, right+1) 

2) ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ์—ด ์ƒ->ํ•˜,

3) ์•„๋žซ์ค„ ํ–‰ ์šฐ->์ขŒ,

4) ์ƒ์Šน ์ขŒ์ธก ์—ด

 

์—ฌ๊ธฐ์„œ ์ด ๋ฌธ์ œ์˜ ์ง„๊ฐ€๊ฐ€ ๋‚˜ํƒ€๋‚œ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค!!!

row์™€ col์— ๊ฐ‡ํžˆ์ง€๋ง์ž. ๋ณ€์ˆ˜๋ณด๋‹ค ๊ตฌํ•ด์•ผํ•˜๋Š”๊ฒƒ์„ ํ‘ธ๋Š” ๋กœ์ง์— ์ง‘์ค‘ํ•˜์ž

๋‚˜๊ฐ™์ด ์ฝ”ํ…Œ ์—ฐ์Šต์–‘์ด ์•„์ง ์ ์€ ์‚ฌ๋žŒ์€ ์—ฌ๊ธฐ์„œ ํ—ท๊ฐˆ๋ฆฌ๊ธฐ ์‰ฝ๋‹ค. 

๋ฐ”๋กœ, ํ–‰ row ์„ ์ฑ„์šฐ๋Š” ๊ฒƒ์ธ๋ฐ ์™œ for๋ฌธ ์•ˆ์—์„œ ๋ณ€์ˆ˜๋Š” col์ด ๋‚˜์˜ค๋Š”์ง€ => ๊ทธ ์ด์œ ๋Š” ํ–‰์„ ์ฑ„์šด๋‹ค๋Š” ์˜๋ฏธ๋Š” ์ด๋ฏธ ๊ทธ ํ–‰์ด top์ž„์„ ์šฐ๋ฆฌ๊ฐ€ ๊ณ ์ •์‹œ์ผœ๋†จ๊ณ  ํ–‰์„ ๊ณ ์ •์‹œ์ผฐ๋‹ค๋ฉด ์šฐ๋ฆฌ๊ฐ€ ํ•œ์นธ์”ฉ ์›€์ง์ด๋ฉด์„œ ์ฑ„์›Œ์•ผํ•˜๋Š”๊ฑด columns์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

์ด๋ฅผ ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•˜๋ฉด, for col in range(left, right+1) 

๋‹ค์‹œ, ๊ทธ ์•„๋ž˜ 2๋ฒˆ์ผ€์ด์Šค๋ฅผ ๋ณด๋ฉด์„œ ์„ค๋ช…ํ•˜์ž๋ฉด, 

๊ฐ€์žฅ ์šฐ์ธก ์—ด์„ ์ฑ„์šฐ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ์—ด์„ ์ด๋ฏธ right ๋กœ ๊ณ ์ •์„ ์‹œ์ผœ๋†จ์œผ๋‹ˆ for๋ฌธ์—์„œ ํ•œ์นธ์”ฉ ์ „์ง„ํ•˜๋ฉฐ ์ฑ„์›Œ์•ผํ•˜๋Š” ๊ฑด top์ด bottom์œผ๋กœ ํ•œ์นธ์”ฉ ๊ฐ€๋Š” ๊ฒƒ, ์ฆ‰ row์ธ ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•˜๋ฉด for row in range(top, bottom+1) ์ด๋•Œ, bottom์€ n-1์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฒˆ์งธ๋กœ๋Š” n๋ฒˆ์งธ, ๊ฐ’์œผ๋กœ๋Š” n-1๊นŒ์ง€ ๊ฐ€๋ ค๋ฉด bottom+1์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค. 

 

์„ธ๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ์€ ๋ฐฉํ–ฅ์ด ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐ”๋€๋‹ค๋Š” ๊ฒƒ์ด ์ฐจ์ด์ ์ด๋‹ค. 

right์—์„œ left๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ, ์ด๊ฑธ for๋ฌธ ํ‘œํ˜„๋ฒ•์œผ๋กœ right, left-1, -1์ด ๋˜๋Š”๋ฐ ์ด๋ฏธ ์šฐ๋ฆฌ๊ฐ€ ์ฒซ for๋ฌธ์„ ์‹œ์ž‘์œผ๋กœ left์˜ ์—ด ํ•œ์ค„์„ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— -1์„ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. 

 

๋„ค๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ์€ ์•„๋žซ์ค„์—์„œ ์ด๋™ํ•˜๋‹ˆ๊นŒ bottom์—์„œ ์‹œ์ž‘ํ•˜๊ณ  top๊ธฐ์ค€์œผ๋กœ ์ด๋ฏธ ํ•œ์ค„ ์ฑ„์› ์œผ๋‹ˆ top-1๊นŒ์ง€ ์—ญ๋ฐฉํ–ฅ ์ด๋™์ด๋‹ˆ๊นŒ -1ํ•˜๋ฉด์„œ for๋ฌธ์„ ๋งŒ๋“ค์–ด์ฃผ๊ณ  col์€ ๊ณ ์ •์ด๋‹ˆ๊นŒ row๋ฅผ ๋ณ€์ˆ˜๋กœ ๋ฐ›๋Š”๋‹ค. for row in range(bottom, top-1,-1) 

 

ํ•ญ์ƒ row๊ฐ€ ์ฒซ๋ฒˆ์งธ ์ธ๋ฑ์Šค, col์ด ๋‘๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ผ ์ƒ๊ฐํ•˜๊ณ  grid[][]๋Š” ๊ฐ ๋ฐ˜๋ณต๋ฌธ์—์„œ ๊ณ ์ •๋œ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ๋„ฃ์–ด์ค€๋‹ค. 

grid[r][right] = num ์ด๋ ‡๊ฒŒ 

 

3. ์ด์ œ for๋ฌธ ์•ˆ์—์„œ ์–ด๋– ํ•œ ์—ฐ์‚ฐ์ด ์ด๋ฃจ์–ด์ ธ์•ผํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด์ž. 

grid[r][right] = num ์ด๋ ‡๊ฒŒ num๊ฐ’์„ ์›์†Œ๋กœ ๋Œ€์ž…ํ•ด์ฃผ๋ฉด, num+=1์„ ํ†ตํ•ด ๋ณ€์ˆ˜๊ฐ’์„ ๊ฐฑ์‹ ํ•ด์ฃผ๊ณ , 

for๋ฌธ์„ ๋‚˜์™€์„œ right ๊ฐ’์„ - 1 ํ•ด์ค€๋‹ค. 

์™œ for๋ฌธ์—์„œ ๋‚˜์™€์„œ ๊ฐฑ์‹ ํ•ด์ฃผ๋ƒ? ์กฐ๊ธˆ๋งŒ ์ƒ๊ฐํ•ด๋ณด์ž. for๋ฌธ ์—์„œ ์ธ๋ฑ์Šค ์ƒ์ˆ˜๋กœ right๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ ๋™์ผํ•œ ๋ฐ˜๋ณต๋ฌธ์•ˆ์—์„œ ๊ทธ ๊ฐ’์„ ๋ณ€์ˆ˜๋กœ ๊ณ„์† ๋ฐ”๊พธ๋ ค๊ณ  ์‹œ๋„ํ•˜๋ฉด ์ธ๋ฑ์Šค ์—๋Ÿฌ๊ฐ€ ๋‚  ๊ฒƒ์ด๋‹ค. 

์ด๋ถ€๋ถ„์„ ์ธ์ง€ํ•˜๋ฉด ์˜คํžˆ๋ ค ๊ทธ if๋ฌธ๊ณผ ๊ทธ ๋‹ค์Œ for๋ฌธ ์ž‘์„ฑํ•˜๊ธฐ๊ฐ€ ์‰ฌ์›Œ์ง„๋‹ค. 

right๊ฐ€ ์ธ๋ฑ์Šค์— ๋“ค์–ด๊ฐ€๋Š” ๋ณ€์ˆ˜๋‹ˆ๊นŒ if๋ฌธ์œผ๋กœ while์˜ ์ข…๋ฃŒ ์กฐ๊ฑด์€ right๊ฐ€ ์ƒ๋Œ€ํŽธ์ธ left๋ณด๋‹ค ์ž‘์„ ๊ฒฝ์šฐ๋กœ break๋ฌธ์„ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

๋‚จ์€ ๋‚ด์šฉ๋„ ๋™์ผ 

 

4. ์ถœ๋ ฅ ์ด์Šˆ 

์ถœ๋ ฅ์„ ๋•Œ๋ก  for๋ฌธ์„ ๋‘๊ฐœ ์‚ฌ์šฉํ•ด์„œ ๋งž์ถฐ์ค˜์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋ง๊ธฐ. 

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋”ฐ๋ฅธ for๋ฌธ์€ ๊ทธ๋ƒฅ ์˜ˆ์‹œ์ผ๋ฟ, ์šฐ๋ฆฌ๊ฐ€ ๋งž์ถฐ์•ผํ•˜๋Š”๊ฑด ์ถœ๋ ฅ๋˜๋Š” ๋ชจ์Šต์ด๋‹ค. ์ซ„ ใ„ดใ„ด

 

ํŒŒ๋ฆฌ ํ‡ด์น˜ ๋ฌธ์ œ๋ฅผ ๋ณด๋ฉด 2์ฐจ์› ๋ฐฐ์—ด์ด ์šฐ๋ฆฌ๋ฅผ ๋ฐ˜๊ธฐ๊ณ  ์žˆ๋‹ค. 

์™„์ „ ํƒ์ƒ‰์ด๋‚˜ ๊ตฌํ˜„/์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฌธ์ œ๋Š” 2์ฐจ์› ๋ฐฐ์—ด์ด ๋งŽ์ด ๋‚˜์™€์„œ ์ด์ œ grid๊ฐ€ ๋ณด์ด๋ฉด ๋ฐ˜๊ฐ€์šธ ์ง€๊ฒฝ.

๊ทธ๋ž˜๋„ ํŒŒ๋ฆฌํ‡ด์น˜ ๋ฌธ์ œ๋Š” ์ฐฌ์ฐฌํžˆ ๋ณด๋ฉด ๊ทธ๋ ‡๊ฒŒ ๋‹ต๋‹ตํ•œ ๋ฌธ์ œ๋Š” ์•„๋‹Œ๊ฒƒ ๊ฐ™๋‹ค. 

์ตœ๋Œ€ sum์„ ๊ตฌํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ์กฐ๊ธˆ ๋ง‰๋ง‰ํ•˜๋‹ค๊ณ  ๋А๋‚„ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด ๋ฌธ์ œ์—์„œ N๊ณผ M์€ ๊ทธ๋ ‡๊ฒŒ ํฌ์ง€ ์•Š์•„์„œ for ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ๋„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

๋ฌธ์ œ๋Š” N by N์œผ๋กœ ์ฑ„์›Œ์ง„ grid์— M by M์˜ ํŒŒ๋ฆฌ์ฑ„๋กœ ๊ฐ€์žฅ ๋งŽ์€ ํŒŒ๋ฆฌ๋ฅผ ์žก์•„์•ผ ํ•˜๋Š” ๋‚ด์šฉ์ด๋‹ค. 

๊ทผ๋ฐ ์ด์ œ ์ž…๋ ฅ์œผ๋กœ grid์˜ ์›์†Œ๋“ค์„ ๋ฐ›์•„์•ผ ํ•˜๋Š” ๊ฒƒ. 

 

๋จผ์ € ๋ฐฐ์—ด์„ ์ดˆ๊ธฐํ™” ํ•ด์ฃผ๋Š”๋ฐ ๋‚œ Mgrid๊นŒ์ง€ ๋งŒ๋“ค์—ˆ์ง€๋งŒ, ์‚ฌ์‹ค ํ•„์š”๋Š” ์—†๋‹ค๊ณ  ํ•œ๋‹ค. 

์ž…๋ ฅ์—์„œ Ngrid์˜ ์›์†Œ๋ฅผ ๋ฐ›์„๋• for ๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฐ›์•„์ฃผ๋Š”๋ฐ, Ngrid๋ฅผ ๋จผ์ € 1์ฐจ์› ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, 

๊ทธ ์ด์œ ๊ฐ€ ๋ฐ”๋กœ ๋ฐ˜๋ณต๋ฌธ ์•ˆ์—์„œ row๋กœ ํ•œ์ค„์”ฉ ์ž…๋ ฅ์„ ๋ฐ›์•„์„œ ๊ทธ row๋ฅผ ์›์†Œ๋“ค๋กœ ๋ฐ›์œผ๋ฉด ๊ทธ๊ฒŒ 2์ฐจ์› ๋ฐฐ์—ด์ด ๋˜๊ธฐ ๋•Œ๋ฌธ. 

์ดํ›„ append๋กœ Ngrid๋ฅผ ์™„์„ฑํ•˜๋ฉด๋œ๋‹ค. 

 

๊ทธ๋ฆฌ๊ณ  ์ด์ œ row์™€ col์„ N-M+1๋งŒํผ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ์•„์•ผํ•˜๋Š”๋ฐ, 

current ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ํฌ์ธํŠธ. 

์ฒ˜์Œ ํ’€๋•Œ sum๋งŒ ์ƒ๊ฐํ•˜๊ณ  current๋ฅผ ๋†“์ณค๋Š”๋ฐ ํ•ญ์ƒ ์ด๋ ‡๊ฒŒ ๊ธฐ์ค€์ด ๋˜๋Š” ๋ณ€์ˆ˜๋ฅผ ์ƒ๊ฐํ•˜๋Š”๊ฒŒ ์ค‘์š”ํ•˜๋‹ค. 

current ๋ณ€์ˆ˜๋ฅผ 0์œผ๋กœ ์„ค์ •ํ•˜๊ณ , ๋‹ค์‹œ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฉด์„œ, ์ด๋•Œ!! ๋ฐ˜๋ณต๋ฌธ์€ ๊ธฐ์ค€์ด๋˜๋Š” r, c๋ถ€ํ„ฐ ๊ทธ ๊ธฐ์ค€์—์„œ๋ถ€ํ„ฐ ์ข…๋ฃŒ๋˜๋Š” ๋ถ€๋ถ„r+M, c+M๊นŒ์ง€๋กœ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ๊ทธ ๋ถ€๋ถ„์— ํ•ด๋‹นํ•˜๋Š” Ngrid ์›์†Œ ๊ฐ’์„ current์— ๋”ํ•ด์ค€๋‹ค. ๋ฐ•์Šค ๋ชจ์–‘์„ ๊ฑฑ์ •ํ•  ํ•„์š”๋Š” ์—†๋Š”๊ฒŒ ๊ฐ ์—ด๊ณผ ํ–‰์˜ +M์„ ํ•œ๊ฒŒ ๋ฐ•์Šค ๋ชจ์–‘์ด ๊ตฌ์ƒ์ด ๋œ๋‹ค. 

๊ทธ๋ฆฌ๊ณ  i์™€ j๋กœ ๋ˆ ๋ฐ˜๋ณต๋ฌธ ๋ฐ–์œผ๋กœ ๋‚˜์™€ if ๋ฌธ์œผ๋กœ current์™€ Gsum์˜ ๋Œ€์†Œ๋ฅผ ๋น„๊ตํ•ด์„œ ์ตœ๋Œ“๊ฐ’์œผ๋กœ ํ• ๋‹นํ•ด์ค€๋‹ค. 

2์ค‘ for๋ฌธ ์•ˆ์—์„œ ๋ฐ˜๋ณตํ•ด์ค˜์•ผํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜๊ธฐ. 

 

ํ’€์ด ์ฝ”๋“œ) 

def solve():
    #์ •์ˆ˜ ์ž…๋ ฅ๋ฐ›์•„์„œ ์ƒ์„ฑ     
    N, M= map(int,input().split())
    Gsum = 0 
    Ngrid = []
    Mgrid = [[0] * N for _ in range(M)] #ํŒŒ๋ฆฌ์ฑ„ ์ƒ์„ฑ 
    # print(Mgrid)
    #์ •์ˆ˜ ์ž…๋ ฅ๋ฐ›์•„์„œ ๊ทธ๋ฆฌ๋“œ์— ์ €์žฅ ->๊ฐ row๋ฅผ ๋ฐ›์•„์„œ 1์ฐจ์› ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ๋กœ ๋„ฃ๊ธฐ 
    for _ in range(N): 
        row = list(map(int, input().split()))
        Ngrid.append(row)
    # print(Ngrid)

    #Ngrid๋ฅผ row์™€ col๋กœ ์™„์ „ ํƒ์ƒ‰ํ•˜๋ฉด์„œ M grid๋งŒํผ sum์„ ํ•ญ์ƒ ๊ตฌํ•˜๊ธฐ 
    for r in range(N-M+1): 
        for c in range(N-M+1):
            current = 0 #์—ฌ๊ธฐ๊ฐ€ ๋ฌธ์ œ 
            for i in range(r, r+M):
                for j in range(c, c+M):
                    current += Ngrid[i][j] #i,j๋ฒˆ์งธ ์žˆ๋Š” ๊ฒƒ๋“ค์˜ ํ•ฉ 
            if current > Gsum:
                Gsum = current
            
    #print(Gsum) #๋””๋ฒ„๊น…์šฉ ์ถœ๋ ฅ๋ฌธ
    return Gsum 
            
            # if(r and c == N-M+1): #์ž˜๋ชป ์ƒ๊ฐํ•œ ๋ถ€๋ถ„
                # Gsum = sum(Mgrid)
        
solve()

 

 

1. Brute Force: ์™„์ „ ํƒ์ƒ‰์ด๋ž€ 
์™„์ „ ๋‹ค ํƒ์ƒ‰ํ•œ๋‹ค๋Š” ๋ง๋กœ, ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๋‹ค ์ƒ๊ฐํ•ด์„œ ์ „๋ถ€ ์‹œ๋„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

์ง์ ‘ ๋‹ค ๊ตฌํ˜„ํ•ด์„œ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๋‹ค ๊ฑฐ์น˜๋ฉฐ ํ™•์ธํ•˜๋Š” ๊ฒฝ์šฐ 

 

2. DP: Dynamic Programming ๋™์  ๊ณ„ํš๋ฒ• 

์ด๊ฑด ์ด๋ก ์ ์œผ๋กœ ์žˆ๋Š” ๊ฐœ๋…์€ ์•„๋‹ˆ์ง€๋งŒ, ์ฝ”ํ…Œ์™€ ๊ฐ™์ด ๋ฌธ์ œํ’€์ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋‹จ์–ด. 

์˜ˆ๋ฅผ๋“ค์–ด ์ค‘๋ณต๋˜๋Š” ๊ณ„์‚ฐ์ด๋‚˜ ์žฌ๊ท€์ ์ธ ๊ณ„์‚ฐ ๊ฐ™์€ ๊ฒฝ์šฐ ํ•ด๋‹น ์‹์„ ์ผ๋ฐ˜์‹์œผ๋กœ ํ‘œ์ค€ํ™”ํ•ด์„œ ๋”ฐ๋กœ ์ €์žฅํ•ด์„œ ์ค‘๋ณต ๊ณ„์‚ฐ์„ ์—†์• ๋Š” ํšจ์œจ ์ถ”๊ตฌ ๋ฐฉ์‹

์™„์ „ํƒ์ƒ‰์˜ ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ๋ณผ์ˆ˜์žˆ๋‹ค.

-> ๊ฒน์น˜๋Š” ๋ฌธ์ œ (ํฐ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๋ณด๋‹ˆ ๊ฐ™์€ ์ž‘์€ ๋ฌธ์ œ๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ํ’€ ๊ฒฝ์šฐ) 

-> ์ตœ์  ๋ถ€๋ถ„ ๊ตฌ์กฐ(์ „์ฒด ๋ฌธ์ œ์˜ ์ตœ์ ํ•ด๊ฐ€ ๋ถ€๋ถ„ ๋ฌธ์ œ๋“ค์˜ ์ตœ์ ํ•ด๋กœ ๊ฒฐ์ •๋˜๋Š” ๊ฒฝ์šฐ) 

์ด ๋‘๊ฐ€์ง€ ํŒจํ„ด์ด ๋ณด์ด๋ฉด DP ๋ผ๊ณ  ์ƒ๊ฐํ•˜์ž

 

Dp์˜ ํ˜•ํƒœ๋กœ๋Š” 

1) Top-down + ์žฌ๊ท€ 

2) Bottom-up ; ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ํ…Œ์ด๋ธ” ์ฑ„์šฐ๊ธฐ 

๋‘๊ฐ€์ง€๊ฐ€ ์žˆ์Œ 

 

3. BFS: Breadth-First Search ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰

ํ˜„์žฌ ์œ„์น˜์—์„œ "ํ•œ ์นธ ๊ฑฐ๋ฆฌ"์— ์žˆ๋Š” ์• ๋“ค์„ ์ „๋ถ€ ๋จผ์ € ๋ฐฉ๋ฌธํ•˜๊ณ , ๊ทธ ๋‹ค์Œ ๋‘์นธ ๊ฑฐ๋ฆฌ์— ์žˆ๋Š” ์• ๋“ค์„ ๋ฐฉ๋ฌธํ•˜๋Š” ๋ฐฉ์‹ 

like ํผ์ ธ๋‚˜๊ฐ€๋Š” ํŒŒ๋™/๋ฌผ๊ฒฐ ๋А๋‚Œ, ๋™์‹œ์— ํ•œ๋‹จ๊ณ„์”ฉ ํผ์ ธ๋‚˜๊ฐ„๋‹ค. 

-> ๋ณดํ†ต queue๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„ํ•œ๋‹ค. ํ๊ฐ€ ๋นŒ๋•Œ๊นŒ์ง€, ํ์—์„œ ํ•˜๋‚˜ ๊บผ๋‚ด์„œ ์ธ์ ‘ํ•œ ๋…ธ๋“œ๋ฅผ ํ์— ๋„ฃ๊ธฐ 

-> ์ฃผ๋กœ ๋ฏธ๋กœ์™€ 2๋‹จ grid ์ตœ๋‹จ๊ฑฐ๋ฆฌ(๊ฐ€์ค‘์น˜ ๋™์ผ์‹œ) ๋ฌธ์ œ์™€ ํŠธ๋ฆฌ์˜ level ๋ณ„ ํƒ์ƒ‰์—์„œ ์‚ฌ์šฉ 

 

 

 

4. DFS: Depth-First Search ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰ 

ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๋๊นŒ์ง€ ๊ฐ”๋‹ค๊ฐ€ ๋ง‰ํžˆ๋ฉด ํ•œ๋‹จ๊ณ„์”ฉ ๋’ค๋กœ ๋Œ์•„์˜ค๋ฉด์„œ ๋‹ค๋ฅธ ๊ธธ๋กœ ๋‹ค์‹œ ๋“ค์–ด๊ฐ€๊ธฐ 

like ์ผ๋‹จ ๋๊นŒ์ง€ ๊ฐ€ ๋ฐฉ์‹ 

-> ๋ณดํ†ต stack / ์žฌ๊ท€ ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ 

-> ํ˜„์žฌ ๋…ธ๋“œ ๋ฐฉ๋ฌธํ•˜๊ณ , ์ธ์ ‘ํ•œ ๋…ธ๋“œ์ค‘ ์•„์ง ์•ˆ ๊ฐ„ ์• ๋“ค์„ ํ•˜๋‚˜์”ฉ ์Šคํƒ/์žฌ๊ท€ ๋ฐฉ์‹์œผ๋กœ ๋ฐฉ๋ฌธ 

-> ์ฃผ๋กœ ์—ฐ๊ฒฐ๋œ ์˜์—ญ ๊ฐœ์ˆ˜ ์„ธ๊ธฐ, ํŠธ๋ฆฌ ์ˆœํšŒ, ๋ฐฑํŠธ๋ž˜ํ‚น(์™„์ „ํƒ์ƒ‰) ์—์„œ ์‚ฌ์šฉํ•œ๋‹ค. 

 

๊ทธ๋ž˜ํ”„ ๋ฌธ์ œ์—์„œ์˜ ๋ชฉํ‘œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

- ์ถœ๋ฐœ์ ์—์„œ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์นธ/๋…ธ๋“œ๊ฐ€ ๋ช‡๊ฐœ์ธ์ง€

- ์„œ๋กœ ์—ฐ๊ฒฐ๋œ ๋ฉ์–ด๋ฆฌ๊ฐ€ ๋ช‡๊ฐœ์ธ์ง€

- ๋ฏธ๋กœ์—์„œ ์ถœ๊ตฌ๊นŒ์ง€ ๊ฐˆ ์ˆ˜ ์žˆ๋Š”์ง€ + ์ตœ๋‹จ๊ฑฐ๋ฆฌ 

 

 

 

 

 

 

 

D2์— ์žˆ๋Š” ๊ฐ„๋‹จํ•œ 369๊ฒŒ์ž„ 

๋กœ์ง์€ ๊ฐ„๋‹จํ•˜์ง€๋งŒ, ์ž…์ถœ๋ ฅ์„ ์ฃผ์˜ํ•ด์„œ ํ’€์–ด์•ผํ•œ๋‹ค.

ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋ฅผ ์ž…๋ ฅ๋ฐ›์ง€์•Š๊ณ  ๋ฐ”๋กœ ์ •์ˆ˜ N์„ ์ž…๋ ฅ๋ฐ›์•„ ํ•ด๋‹น N ์‚ฌ์ด ์ •์ˆ˜์— 3,6,9 ์— ํ•ด๋‹นํ•˜๋Š” ์ˆ˜๋ฅผ -๋กœ ๋ฐ”๊ฟ”์ค˜์•ผ ํ•œ๋‹ค. 

์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  ํ•ด๋‹น ์ •์ˆ˜๊นŒ์ง€์˜ ์ˆ˜๋“ค์„ ๋ฐ˜๋ณต์„ ์‚ฌ์šฉํ•ด์„œ str์„ ํ™œ์šฉํ•˜๊ณ  list์•ˆ์— ๋ฌธ์ž์—ด์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. 

๊ทธ๋ฆฌ๊ณ  ์ถœ๋ ฅํ• ๋• list๋ฅผ ์ฃผ์˜ํ•ด์„œ ์›์†Œ๋“ค์„ ๊ณต๋ฐฑ ๊ธฐ์ค€์œผ๋กœ ์ผ๋ ฌ๋กœ ์ถœ๋ ฅํ•ด์•ผํ•œ๋‹ค. 

 

 

ํ’€์ด ์ฝ”๋“œ 

def solve(n):
    result = []  # ์ตœ์ข… ์ถœ๋ ฅ์šฉ ๋ฌธ์ž์—ด๋“ค์„ ๋ชจ์„ ๋ฆฌ์ŠคํŠธ

    for i in range(1, n+1):
        s = str(i)
        cnt = 0

        # ์ด๋ฒˆ ์ˆซ์ž i์—์„œ 3/6/9 ๊ฐœ์ˆ˜ ์„ธ๊ธฐ
        for ch in s:
            if ch in '369':
                cnt += 1

        if cnt == 0:
            result.append(s)         # ์ˆซ์ž ๊ทธ๋Œ€๋กœ
        else:
            result.append('-' * cnt) # 3/6/9 ๊ฐœ์ˆ˜๋งŒํผ '-'

    return result


n = int(input())
ans = solve(n)
print(*ans)

 

๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ์ฃผ์˜ํ•ด์•ผํ•  ์ . 

1. ์ˆซ์ž์—์„œ ์–ด๋А ์ž๋ฆฌ๊ฐ€(์ผ/์‹ญ/๋ฐฑ...) 3/6/9์ธ์ง€๊ฐ€ ์ค‘์š”ํ•œ๊ฒŒ ์•„๋‹ˆ๋ผ ํ•ด๋‹น ์ˆซ์ž์— 3,6,9๊ฐ€ ๋ช‡๋ฒˆ ๋“ค์–ด๊ฐ€๋Š”์ง€๊ฐ€ ์ค‘์š”ํ•˜๋‹ค. 

-> ๋ช‡๋ฒˆ์ด๋ผ๊ณ  ์ •์˜ ๋‚ด๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ํšŸ์ˆ˜๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” count ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์ž. 

36์ด๋ฉด -๊ฐ€ ๋‘๋ฒˆ --, 35์ด๋ฉด -๊ฐ€ ํ•œ๋ฒˆ์ด์–ด์„œ - ์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค. 

-> ์ฒ˜์Œ ์ƒ๊ฐํ–ˆ๋˜ ๋ฐฉ๋ฒ•์€ 3,6,9๋ฅผ -๋กœ replaceํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ๊ทธ๋Ÿด ํ•„์š” ์—†์ด ๊ทธ๋ƒฅ 3,6,9๋งŒ ์žˆ์œผ๋ฉด -์„ ์ถœ๋ ฅํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. 

 

2.  -์„ ์ถœ๋ ฅํ• ๋• '-'*count๋กœ ์ถœ๋ ฅํ•œ๋‹ค. 

๋ฌธ์ž์— ํšŸ์ˆ˜๋ฅผ ๊ณฑํ•ด์„œ ๊ทธ๋งŒํผ์„ ์ƒˆ๋กœ์šด ์ •๋‹ต ๋ฐฐ์—ด์— append๋กœ ๋ผ์›Œ๋„ฃ๋Š”๋‹ค. (expend์™€ ์ฃผ์˜) 

 

3. ๋งˆ์ง€๋ง‰ ์ถœ๋ ฅ ํ˜•์‹์œผ๋กœ ๋‚ด๊ฐ€ print(*ans)์™€ ๊ฐ™์€ ํ˜•์‹์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ์ด ์ด์œ ๋Š”, ์ •๋‹ต์ธ ๋ฐฐ์—ด์˜ ์›์†Œ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์›์†Œ๋ผ๋ฆฌ ๋„์–ด์“ฐ๊ธฐ๋ฅผ ํ•ด์„œ ์ถœ๋ ฅํ•˜๊ณ ์ž ํ–ˆ๊ธฐ ๋•Œ๋ฌธ

 

4. ํŒŒ์ด์ฌ ๋ฌธ๋ฒ•์—์„œ์˜ if๋ฌธ ์ฃผ์˜

-> if s='3' or '6' or '9':๋Š” ํ‹€๋ ธ๊ณ  if s = '3' or s='6' or s = '9':๋กœ ์ฃผ์˜ 

์™œ์ธ์ง€ ์•Œ์•„์•ผํ•˜๋Š”๋ฐ, ๋ฌธ์ž์ธ '6'์ด๋‚˜ '9'๋Š” ํ•ญ์ƒ True์ด๊ธฐ ๋•Œ๋ฌธ์— 

ํ˜น์€ ๋ฌธ์ž"์—ด"์—์„œ 369๊ฐ€ ์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด if s in '369':๋ฅผ ํ†ตํ•ด ํ•˜๋‚˜์˜ ์‹์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

5. Index range ์—๋Ÿฌ ์ฃผ์˜ 

for i in range(n+1):
    digits = list(str(i))

for j in range(n):           # j๋Š” 0 ~ n-1
    if digits[j] in '369':   # โŒ ์—ฌ๊ธฐ์„œ IndexError
        ...

 

์œ„์™€ ๊ฐ™์ด ์ž‘์„ฑ์„ ์ฃผ์˜ํ•œ๋‹ค. 

i๊ฐ€ 0๋ถ€ํ„ฐ n๊นŒ์ง€ ๋ˆ๋‹ค๊ณ  ํ• ๋•Œ, j๋Š” 0๋ถ€ํ„ฐ n-1๊นŒ์ง€๋งŒ ๋ˆ๋‹ค.  -> IndexError ๋ฐœ์ƒ 

* ๋ฐ˜๋ณต ๋ฒ”์œ„๋Š” ํ•ญ์ƒ ๋ฆฌ์ŠคํŠธ ๊ธธ์ด์— ๋งž์ถฐ์•ผํ•œ๋‹ค. 

๊ทธ๋Ÿฐ๋ฐ ํŒŒ์ด์ฌ์—์„œ๋Š” len์œผ๋กœ ๋ฆฌ์ŠคํŠธ ๊ธธ์ด ํ‘œํ˜„๋ณด๋‹ค ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ for ch in s:์„ ํ†ตํ•ด ๋’ค์— range๋ฒ”์œ„๋ฅผ ๋ฌธ์ž์—ด์„ ๋ฐ”๋กœ ์ ์–ด์คŒ์œผ๋กœ,

๋”์šฑ ํŒŒ์ด์จ๋‹‰ํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค. 

 

6. ํ•จ์ˆ˜ ๊ตฌ์กฐ/ํ˜ธ์ถœ ๋ฐฉ์‹ ์ฃผ์˜ ๋ถ€๋ถ„ 

for i in range(n+1): ์™€ ๊ฐ™์€ ๋ฐ˜๋ณต๋ฌธ์„ ๋งŒ์•ฝ ์ •๋‹ต ์ถœ๋ ฅ๋ฌธ๊ณผ def ํ•จ์ˆ˜(n)์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›๋Š”์—์„œ ๋‘˜๋‹ค ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์ค‘์ฒฉ๋  ์ˆ˜ ์žˆ์Œ์„ ์ฃผ์˜ํ•œ๋‹ค. 

-> ๋ณดํ†ต 1~n๊นŒ์ง€ ๋„๋Š” ๋ฐ˜๋ณต์€ ๋ณดํ†ต ํ•œ ๊ณณ์—์„œ ํ•œ ๋ฒˆ๋งŒ ์žˆ์œผ๋ฉด ์ถฉ๋ถ„ํ•˜๋‹ค. 

์˜ˆ์‹œ) 

def solve(n):
    result = []
    for i in range(1, n+1):
        ...  # result์— ์ฑ„์šฐ๊ธฐ
    return result

n = int(input())
ans = solve(n)
print(*ans)

 

7. input()์œผ๋กœ ๋ฐ›๋Š”๊ฒƒ์€ ์ด๋ฏธ ๋ฌธ์ž์—ด 

 

8. ๋ฆฌ์ŠคํŠธ์— ๊ฐ’์„ ๋„ฃ์„๋•Œ: append, extend ์ฐจ์ด 

append(x)์˜ ๊ฒฝ์šฐ, list์•ˆ์— ์›์†Œ x๋ฅผ ์ง‘์–ด๋„ฃ์Œ 

arr = []
arr.append('ab')   # ['ab']

extend(iterable)์˜ ๊ฒฝ์šฐ, ๋ฆฌ์ŠคํŠธ์— iterable์›์†Œ๋“ค์„ ํ’€์–ด์„œ ์—ฌ๋Ÿฌ๊ฐœ ๋„ฃ์Œ 

arr = []
arr.extend('ab')   # ['a', 'b']

 

์ด ๋ฌธ์ œ์— extend๊ฐ€ ๋” ์ ํ•ฉํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ•œ ์ˆซ์ž๋‹น -๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— 35๋ฅผ ์ชผ๊ฐœ์„œ 3,5๋กœ ์ €์žฅํ•˜๋ฉด '-','5'๋กœ ์ถœ๋ ฅ์ด ๋จ์œผ๋กœ ํ‹€๋ฆฐ ์ƒ๊ฐ์ด๋‹ค. 

์˜คํžˆ๋ ค append()์„ ์‚ฌ์šฉํ•ด์„œ 35๊ฐ€ - ํ•œ๊ฐœ๋กœ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•ด์•ผํ•œ๋‹ค. 

 

 

์ด ๋ฌธ์ œ๋Š” palindrome์„ ์ฐพ๋Š” ๋ฌธ์ œ๋‹ค. 

์ฒ˜์Œ์—” ๊ฐ€์šด๋ฐ ๊ธ€์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์–‘์˜†์œผ๋กœ ์ด๋™ํ•˜๋ฉด์„œ ๋น„๊ต ํ•˜๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ–ˆ๋‹ค. 

๊ทธ๋Ÿฌ๋‚˜, ์ด ๋ฐฉ๋ฒ•์ด๋ฉด ๊ธ€์ž์ˆ˜๊ฐ€ ์ง์ˆ˜์ธ ๊ฒฝ์šฐ๋ฅผ ๋‚˜๋ˆ ์„œ ๊ณ ๋ คํ•ด์•ผํ•ด์„œ if๋ฌธ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‘๊ฐœ๋ฅผ ์“ฐ๊ณ  ์‹œ์ž‘ํ•œ๋‹ค. 

 

๊ทธ๋Ÿฌ๋‚˜ ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž๋ฅผ ํ™€์ˆ˜/์ง์ˆ˜๋กœ ๋‚˜๋ˆ„์ง€์•Š๊ณ  ํ‘ธ๋Š” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์€ ์šฐ์„  ๋ฌธ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  

์ฒซ๋ฒˆ์งธ ์‹œ์ž‘ ์ธ๋ฑ์Šค์™€ ๋๋‚˜๋Š” ์ธ๋ฑ์Šค ๋‘˜๋กœ ๋‚˜๋ˆ ์„œ ํ•œ์นธ์”ฉ ์ „์ง„ํ•˜๋ฉฐ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

๋ฌธ์ž์—ด์„ ์ผ๋ ฌ๋กœ ๋‘๊ณ  ์ฒซ ์‹œ์ž‘์„ Left, ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๋ฅผ right๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ํ‘ผ๋‹ค. 

(๋ฐฉํ–ฅ์„ ์„ค์ •ํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ๋‹ฌํŒฝ์ด ๋ฌธ์ œ์™€ ๋น„์Šท )

 

#1989. ์ดˆ์‹ฌ์ž์˜ ํšŒ๋ฌธ ๊ฒ€์‚ฌ
# ๋‹จ์–ด ๊ฐ€์šด๋ฐ ์ˆซ์ž ๊ธฐ์ค€ 
# ์–‘์˜†์œผ๋กœ ๊ฐ€๋ฉด์„œ ๋˜‘๊ฐ™์€์ง€ ์•„๋‹Œ์ง€ ํ™•์ธ -> ํ™€์ˆ˜์ผ๋•Œ๋งŒ ์ ์šฉ ๊ฐ€๋Šฅ 

#์ง์ˆ˜ ํ™€์ˆ˜ ์ƒ๊ด€์—†์ด ํ• ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋กœ ํ’€์ด 
def solve():
    st = str(input())
    left = 0
    right = len(st) - 1 
    ans = 0
    for _ in range(len(st)//2):
        if st[left] == st[right]:
            left += 1
            right -= 1
            ans = 1
        else:
            ans = 0
    return ans 

T = int(input())
for tc in range(1,T+1):
    ans = solve()
    print(f"#{tc} {ans}")

 

์ด ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ์ฃผ์˜ํ•ด์•ผํ•  ์ ์€ ๋ฐ”๋กœ for๋ฌธ ์•ˆ์— ๋ฒ”์œ„๋ฅผ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด์˜ 1/2๊ฐ’์œผ๋กœ ์„ค์ •ํ•ด์ค˜์•ผํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

๊ทธ๋Ÿฐ๋ฐ, ๋ฐ˜๋ณต๋ฌธ ์•ˆ์—์„œ /2๊ฐ€ ์•„๋‹ˆ๋ผ //2๋ฅผ ํ•œ ์ด์œ ๋Š” ํŒŒ์ด์ฌ์—์„œ /2์˜ ๊ฒฐ๊ณผ๋Š” float, //2์˜ ๊ฒฐ๊ณผ๋Š” int์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

 

 

์ด ๋ฌธ์ œ๋Š” ๋ฌธ์ œ๋งŒ ๋ณด๋ฉด ๋‚œ์ด๋„๊ฐ€ ์–ด๋ ต์ง€ ์•Š์€ D2๋‹ค.

์ž…๋ ฅ๋ฐ›์€ ์ •์ˆ˜๋ฅผ ์ตœ๋Œ€๊ฐ’์ผ๋•Œ 1๋ถ€ํ„ฐ ํ™€์ˆ˜๋Š” ๋”ํ•˜๊ณ  ์ง์ˆ˜๋Š” ๋นผ์„œ ์ตœ์ข… ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋‹ค. 

 

ํŒŒ์ด์ฌ ํ’€์ด๋กœ๋„ ํ’€์ด๊ฐ€ ๋‹ค์–‘ํ•˜๊ฒŒ ๊ฐ€๋Šฅํ•ด์„œ ๋Œ“๊ธ€์„ ํ†ตํ•ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด ์ค‘ ๊ณต๋ถ€ํ•  ๊ฒƒ๋“ค์„ ๊ฐ€์ ธ์™”๋‹ค. 

 

1. ๋žŒ๋‹ค ํ’€์ด 

๋žŒ๋‹ค ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ํ’€์ด์ธ๋ฐ C์–ธ์–ด์—์„œ ์˜ค๋ž˜์ „ ์กฐ๊ฑด๋ฌธ์„ ๋ฐฐ์šธ๋•Œ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž ? ์„ ๋ณธ ๊ธฐ์–ต์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. 

๋žŒ๋‹ค ํ•จ์ˆ˜๋„ ์ด์™€ ๋น„์Šทํ•˜๋‹ค. 

์ถœ์ฒ˜ : https://velog.io/@euisuk-chung/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%8B%9C%EA%B0%81%ED%99%94-%EB%A7%88%EC%8A%A4%ED%84%B0%ED%95%98%EA%B8%B0-%EB%9E%8C%EB%8B%A4Lambda-%ED%95%A8%EC%88%98

lambda์˜ ์˜๋ฏธ๋Š” ์˜๋ฏธ๊ฐ€ ์—†๋‹ค๋ผ๋Š” ํ•จ์ˆ˜๋กœ '๊ทธ๋ƒฅ ์ง€๊ธˆ ๋ฐ”๋กœ ์“ฐ๊ณ  ๋ง๊ฑฐ๋‹ˆ๊นŒ ์ผ๋‹จ ๋žŒ๋‹ค๋ผ๊ณ  ๋ถˆ๋Ÿฌ' ์™€ ๋น„์Šทํ•œ ์˜๋ฏธ๋‹ค. 

argument ๋Š” ํ•จ์ˆ˜์—์„œ ์‚ฌ์šฉํ•  ๋ณ€์ˆ˜๋ฅผ ์ž‘์„ฑ 

: ๋กœ ๊ตฌ๋ถ„ํ•ด์ฃผ๊ณ  ๋‚˜๋ฉด 

expression์€ ์ด ํ•จ์ˆ˜์—์„œ ์–ด๋–ค๊ฑธ ์ž‘์„ฑํ•˜๊ณ  ์‹ถ์€์ง€ ์ž‘์„ฑํ•œ๋‹ค. 

 

์ด ๋ฌธ์ œ๋ฅผ ํ’€ ๋•, ํŒŒ์ด์ฌ์˜ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ๊ธฐ์–ตํ•˜์ž. 

-x if x%2==0 else x

์™€ ๊ฐ™์€ ์‹์—์„œ๋Š” ์‚ผํ•ญ ์—ฐ์‚ฐ์ž ํ•ด์„์„ ์•„๋ž˜์™€ ๊ฐ™์ด ํ•œ๋‹ค. 

์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด ์ด ๊ฐ’, ๊ฑฐ์ง“์ด๋ฉด ์ € ๊ฐ’ → A if condition else B

๊ทธ๋ž˜์„œ if๋ฉด -์ง์ˆ˜, else๋ฉด ํ™€์ˆ˜ ๊ทธ๋Œ€๋กœ ๊ฐ€ ๋œ๋‹ค. 

#1986 ์ง€๊ทธ์žฌ๊ทธ 

T = int(input())

for tc in range(1,T+1):
    n = int(input())
    ans = sum(
            map(
                lambda x: -x if x%2==0 else x, 
                range(1,n+1)
            )
              )
    
    print(f"#{tc} {ans}")

 

ํ’€์ด ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๊ณ  map์œผ๋กœ sum์˜ ๋ฐ˜๋ณต์„ 1๋ถ€ํ„ฐ n๋ฒˆ ๊นŒ์ง€ ํ•˜๋Š”๊ฒƒ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. 

+ Recent posts