Skip to content

Conversation

@hyeokbini
Copy link
Collaborator

๐Ÿ”— ๋ฌธ์ œ ๋งํฌ

๊ณจ๋“œ 5
์ œ๊ณฑ์ˆ˜ ์ฐพ๊ธฐ

โœ”๏ธ ์†Œ์š”๋œ ์‹œ๊ฐ„

40๋ถ„

โœจ ์ˆ˜๋„ ์ฝ”๋“œ

๋ฌธ์ œ ํ‘ธ๋Š” ์‹œ๊ฐ„๋ณด๋‹ค ๋ฌธ์ œ ์ดํ•ดํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฐ ์‹œ๊ฐ„์ด ๋” ๊ฑธ๋ฆฐ ๊ฒƒ ๊ฐ™์€ ๋А๋‚Œ์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ์—์„œ ์š”๊ตฌํ•˜๋Š” ์กฐ๊ฑด์„ ์‰ฝ๊ฒŒ ํ’€์–ด ์ ์–ด ๋ณด์ž๋ฉด ํ‘œ์—์„œ 1๊ฐœ ์ด์ƒ์˜ ์นธ์„ ์„ ํƒํ•˜๋Š”๋ฐ, ํ–‰ ์ธ๋ฑ์Šค i, ์—ด ์ธ๋ฑ์Šค j๋ฅผ ๊ณ ๋ฅผ ๋•Œ i1, i2, i3... ๊ฐ€ ๋“ฑ์ฐจ์ˆ˜์—ด์„ ์ด๋ฃจ์–ด์•ผ ํ•˜๊ณ , j1, j2, j3... ์ด ๋“ฑ์ฐจ์ˆ˜์—ด์„ ์ด๋ฃจ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ํ›„ ๋ฝ‘์€ ์ˆซ์ž์ธ arr[i1][j1], arr[i2][j2], arr[i3][j3]... ์„ ์ด์–ด ๋ถ™์ธ ์ˆ˜๊ฐ€ ์™„์ „์ œ๊ณฑ์ˆ˜ ๊ฐ€ ๋˜๋Š” ๋ชฉ๋ก์—์„œ, ๊ฐ€์žฅ ํฌ๊ฒŒ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ์™„์ „์ œ๊ณฑ์ˆ˜๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์ง๊ด€์ ์œผ๋กœ ๋ดค์„ ๋•Œ๋„ ๋ธŒ๋ฃจํŠธํฌ์Šค ์™ธ์—๋Š” ๋ฐฉ๋ฒ•์ด ์—†์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ์—ด์—์„œ ๋žœ๋คํ•˜๊ฒŒ ์–ด๋–ค ์ˆซ์ž๋ฅผ ๊ณจ๋ผ์„œ ์ด์–ด๋ถ™์—ฌ ์ƒˆ๋กœ์šด ์ˆซ์ž๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ, ๋“ฑ์ฐจ์ˆ˜์—ด๋กœ ์ธ๋ฑ์Šค๋ฅผ ๋ฝ‘์•˜์„ ๋•Œ ๊ทธ ์ˆ˜๊ฐ€ ์™„์ „์ œ๊ณฑ์ˆ˜์ธ์ง€ ํŒ๋‹จํ•˜๋Š” ๋กœ์ง์—์„œ ๊ทœ์น™์„ฑ์„ ํŠน๋ณ„ํžˆ ๋„์ถœํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์•ฝ๊ฐ„์˜ ์ฝ”ํ…Œ์‹ ๋ฐœ์ƒ์ด๋ผ๋ฉด ํ‘œ ํฌ๊ธฐ๊ฐ€ ์ตœ๋Œ€ 9*9์ธ ๊ฑฐ์—์„œ ๋ˆˆ์น˜์ฑ„์…จ์„ ํ…Œ๊ณ ์š”.

ํ•ต์‹ฌ ์•„์ด๋””์–ด๋Š” ๋ฐ˜๋ณต๋ฌธ์˜ ์‚ฌ์šฉ์ฒ˜๋ฅผ ๋ช…ํ™•ํžˆ ํ•˜๋ฉด์„œ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์ปค๋ฒ„ํ•˜๋Š” ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค.

์šฐ์„  ๊ฐ€์žฅ ์™ธ๋ถ€์— 2์ค‘ for๋ฌธ์„ ํ†ตํ•ด ํƒ์ƒ‰ ์‹œ์ž‘ ์ธ๋ฑ์Šค ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
...

๊ทธ๋ฆฌ๊ณ  ํ˜„์žฌ ๊นŠ์ด์—์„œ ํ•œ๋ฒˆ check๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. 1๊ฐœ ์ด์ƒ์˜ ์นธ์— ๋Œ€ํ•ด ํƒ์ƒ‰์„ ์š”๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—, 1์นธ์„ ๋ฝ‘์€ ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ•ด์ค๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋˜๋‹ค์‹œ 2์ค‘ for๋ฌธ์„ ๋„๋Š”๋ฐ, ํ–‰ ์ธ๋ฑ์Šค ๋“ฑ์ฐจ์ˆ˜์—ด์˜ ๊ณต์ฐจ, ์—ด ์ธ๋ฑ์Šค ๋“ฑ์ฐจ์ˆ˜์—ด์˜ ๊ณต์ฐจ๋ฅผ ์„ค์ •ํ•ด ์ค๋‹ˆ๋‹ค.

for (int mulx = -n; mulx <= n; mulx++)
    {
        for (int muly = -m; muly <= m; muly++)
        {
...

๊ณต์ฐจ์˜ ๋ฒ”์œ„๋Š” ํ–‰/์—ด์˜ ๋งจ ๋ ์ž๋ฆฌ์—์„œ ๋งจ ๋์ž๋ฆฌ๋กœ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก 0 ~ n , 0 ~ m์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์ง€๋งŒ, ๋ฌธ์ œ ์กฐ๊ฑด์— ๊ณต์ฐจ๋Š” ์Œ์ˆ˜๊ฐ€ ๋  ์ˆ˜ ์—†๋‹ค ๋ผ๋Š” ์กฐ๊ฑด์ด ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ธ๋ฑ์Šค์ƒ์œผ๋กœ ๋’ค๋กœ ๊ฐ€๋Š” ์กฐ๊ฑด๊นŒ์ง€ ๋ชจ๋‘ ๊ณ ๋ ค๋ฅผ ํ•ด์ค˜์•ผ ํ•˜๊ธฐ์—, -n ~ n, -m ~ m์œผ๋กœ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๋“ฑ์ฐจ์ˆ˜์—ด์˜ ์ดˆํ•ญ๊ณผ ๊ณต์ฐจ๊ฐ€ ๋ชจ๋‘ ์„ค์ •๋˜์—ˆ์œผ๋‹ˆ, ๋ฐฐ์—ด ๋ฒ”์œ„ ๋‚ด์—์„œ ํ•œ ์‹œ์ž‘์ ์— ๋Œ€ํ•ด ํ•œ ๋ฒˆ์˜ ๋ง์…ˆ ์—ฐ์‚ฐ๋งˆ๋‹ค check๋ฅผ ์ง„ํ–‰ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ฃผ์˜ํ•  ์ ์€ ํ–‰ / ์—ด ๋“ฑ์ฐจ์ˆ˜์—ด ๊ณต์ฐจ๊ฐ€ ๋ชจ๋‘ 0์ด๋ผ๋ฉด ๋ฌดํ•œ๋ฃจํ”„๋ฅผ ๋Œ๊ฒŒ ๋˜๋ฏ€๋กœ ํ•ด๋‹น ๋ถ€๋ถ„์€ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

if (mulx == 0 && muly == 0)
{
     continue;
}
int curx = i;
int cury = j;
int tempval = 0;
while (curx < n && curx >= 0 && cury < m && cury >= 0)
{
    tempval *= 10;
    tempval += arr[curx][cury];
    check(tempval);
    curx += mulx;
    cury += muly;
}

checkํ•จ์ˆ˜๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ sqrtํ•œ ๊ฐ’์„ intํ˜•์œผ๋กœ ์บ์ŠคํŒ…ํ•œ ๋’ค, ์ œ๊ณฑํ•ด์„œ ์›๋ž˜ ๊ฐ’์ด ๋‚˜์˜ค๋Š”์ง€๋กœ ์ฒดํฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“š ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ๋œ ๋‚ด์šฉ

๊ทผ๋ž˜ ์ด๋Ÿฐ์ €๋Ÿฐ ๋ธŒ๋ฃจํŠธํฌ์Šค / ์™„์ „ํƒ์ƒ‰ ๋ฌธ์ œ๋“ค์„ ๋ณธ ๊ฒƒ ๊ฐ™์€๋ฐ, ์ •๋ง ๋А๋‚€๋Œ€๋กœ๋งŒ ๋งํ•œ๋‹ค๋ฉด ๊ทผ๋ž˜ ๋ณธ ๋ฌธ์ œ ์ค‘์— ์ œ์ผ ๋ฌด์‹ํ•˜๊ฒŒ ํƒ์ƒ‰ํ•˜๋Š” ๋ฌธ์ œ์˜€๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ฃจํŠธํฌ์Šค๊ฐ€ ์›๋ž˜ ๊ทธ๋Ÿฐ ๊ฐ์„ฑ์ด์ง€๋งŒ์š”...

๋ญ”๊ฐ€ ๊น”๋”ํ•˜๊ฒŒ ํ’€ ๋ฐฉ๋ฒ•์ด ์—†์„๊นŒ? ํ•˜๊ณ  ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๊ฒฐ๊ตญ ํ’€์ด ํ›„์— ๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ๋“ค์˜ ํ’€์ด๋ฅผ ๋ดค๋Š”๋ฐ, ๋ณ„๋ฐ˜ ๋‹ค๋ฅผ ๋ฐ”๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๋ฅผ ๋– ์˜ฌ๋ฆฌ๋Š” ๊ฑด ํฌ๊ฒŒ ์–ด๋ ต์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ํ’€์ด์— ํ™•์‹ ์„ ๊ฐ€์ง€๊ณ  ๋ฌด์‹ํ•˜๊ฒŒ ๋ฐ€๊ณ  ๋‚˜๊ฐ€๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜๋‹ค๊ณ  ๋А๊ผˆ์Šต๋‹ˆ๋‹ค.

@hyeokbini hyeokbini self-assigned this Aug 19, 2025
@hyeokbini hyeokbini changed the title 2025.08.19 / ์ œ๊ณฑ์ˆ˜ ์ฐพ๊ธฐ 21-hyeokbini Aug 19, 2025
Copy link
Collaborator

@Seol-Munhyeok Seol-Munhyeok left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ ํ’€์ด๋ฅผ ๊ฒ€์ƒ‰ํ•ด๋ดค๋Š”๋ฐ (์‹œ์ž‘์  $r0$, $c0$)์™€ ๊ณต์ฐจ($dr$, $dc$)๋ฅผ ์ •ํ•˜๊ณ  4์ค‘ for๋ฌธ์„ ๋Œ๋ฆฌ๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ชจ๋“  ๋“ฑ์ฐจ์ˆ˜์—ด์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค๋Š” ๊ฒŒ ์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

  • ํ–‰ ์ธ๋ฑ์Šค: $r_0, r_0 + dr, r_0 + 2dr, ...$ โ†’ ๊ณต์ฐจ๊ฐ€ $dr$์ธ ๋“ฑ์ฐจ์ˆ˜์—ด
  • ์—ด ์ธ๋ฑ์Šค: $c_0, c_0 + dc, c_0 + 2dc, ...$ โ†’ ๊ณต์ฐจ๊ฐ€ $dc$์ธ ๋“ฑ์ฐจ์ˆ˜์—ด

์ด๋Ÿฐ์‹์œผ๋กœ ํ–‰๊ณผ ์—ด ์ธ๋ฑ์Šค๊ฐ€ ๋ณ€ํ™”ํ•˜๋ฏ€๋กœ ๋ชจ๋“  ๋“ฑ์ฐจ์ˆ˜์—ด์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๊ฒŒ๋ฉ๋‹ˆ๋‹ค.
์ถ”๊ฐ€๋กœ ๊ณต์ฐจ๊ฐ€ ์Œ์ˆ˜์ธ ๊ฒฝ์šฐ๋„ ๊ณ ๋ คํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ๋„ ๋†“์น˜๊ธฐ ์‰ฌ์šด ๋ถ€๋ถ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ฒ˜์Œ ์ œ์ถœํ•  ๋•Œ, 97% ์ฏค์—์„œ ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค! ๊ฐ€ ๋‚˜์™€์„œ, ์ž…๋ ฅ์ด 1*1 ํฌ๊ธฐ์ธ ๊ฒฝ์šฐ๋ฅผ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

์†Œ์Šค์ฝ”๋“œ : http://boj.kr/d114354e5b46482898910eda14d14a9e


  • ๋“ฑ์ฐจ์ˆ˜์—ด ์กฐ๊ฑด์„ ์‹œ์ž‘์ (r0, c0)๊ณผ ์ฆ๋ถ„(dr, dc)์œผ๋กœ ํ•ด์„ํ•˜๋Š” ๋ฐฉ์‹์„ ๋ฐฐ์›Œ๊ฐ‘๋‹ˆ๋‹ค.
  • ๋˜ 4์ค‘ for๋ฌธ, 5์ค‘ for๋ฌธ ๋“ฑ์„ ๊ฑฐ๋ฆฌ๋‚Œ ์—†์ด ๊ทธ๋ƒฅ ์‚ฌ์šฉํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ๊ดœํžˆ ์–ด๋ ต๊ฒŒ ๋Œ์•„๊ฐ”์Šต๋‹ˆ๋‹ค.
  • ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ 9๋ฉด 8์ค‘ for๋ฌธ ๊นŒ์ง€๋Š” ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ ๋„ ๊ธฐ์–ตํ•ด๋‘์–ด์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ ํ‘ผ๋‹ค๊ณ  ๊ณ ์ƒํ•˜์…จ์Šต๋‹ˆ๋‹ค!!

@mj010504
Copy link
Collaborator

์ €๋„ ๊ณต์ฐจ๊นŒ์ง€ for๋ฌธ์œผ๋กœ ๋Œ๋ฆด๊นŒ ์ƒ๊ฐํ–ˆ์ง€๋งŒ 2์ฐจ์› ๋ฐฐ์—ด์—์„œ ์‹œ์ž‘์ ์„ ์ง€์ •ํ•˜๊ณ  ๋‘๋ฒˆ์งธ ์ ์„ ์ •ํ•œ ํ›„ ํ–‰๊ณผ ์—ด์˜ ๊ณต์ฐจ๋ฅผ ๊ณ„์‚ฐํ•ด์„œ ๋ฒ”์œ„์—์„œ ๋ฒ—์–ด๋‚  ๋–„ ๊นŒ์ง€ ์ˆ˜๋ฅผ ์ด์–ด๋ถ™์ด๋ฉด์„œ ์™„์ „ ์ œ๊ณฑ์ˆ˜์ธ์ง€ ํ™•์ธํ•˜๊ณ  ๋‹ต์„ ๊ฐฑ์‹ ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.(์–ด์ฐจํ”ผ ๊ฒฐ๊ตญ 4์ค‘ for๋ฌธ์ธ ๊ฑด ๋˜‘๊ฐ™๊ธด ํ•˜๋„ค์š”.)
์ˆ˜๊ณ ํ•˜์…จ์Šต๋‹ˆ๋‹ค.

์ œ๊ณฑ์ˆ˜ ์ฐพ๊ธฐ
#include <bits/stdc++.h>

using namespace std;

int res = -1;
int n, m; 
vector<vector<int>> v;

bool isPerfectSquare(int n) {
    int root = sqrt(n);
    return (root * root) == n;
}

void makeNum(int x, int y, int r, int h, int num) {
    if(isPerfectSquare(num)) {
        res = max(res, num);
    }

    if(r == 0 && h == 0) { // ์ถœ๋ฐœ ์ง€์ 
        for(int i = 0; i < n; i++) {
            for(int j = 0; j < m; j++) {
                if(i != x || j != y) {
                    makeNum(i, j, i - x, j - y, num * 10 + v[i][j]);
                }
            }
        }
    } else {
        int xx = x + r; int yy = y + h;
        if(xx >=0 && xx < n && yy >= 0 && yy < m) {
            makeNum(xx, yy, r, h, num * 10 + v[xx][yy]);
        } 
    }

}

int main() {
    freopen("input.txt", "rt", stdin);  
    ios::sync_with_stdio(false);  
    cin.tie(0);
    cout.tie(0);
 
    cin >> n >> m;
    vector<vector<int>> tv(n, vector<int> (m));
    for(int i = 0; i < n; i++) {
         string str; cin >> str;
        for(int j = 0; j < m; j++) {
            tv[i][j] = str[j] - '0';
        }
    }
    v = tv;


    for(int i = 0; i < n; i++) {
        for(int j = 0; j < m; j++) {
            makeNum(i, j, 0, 0, v[i][j]);
        }
    }

    cout << res;

    return 0;
}

Copy link
Collaborator

@flydongwoo flydongwoo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ํ์•„ ์ €๋„ ์ดํ•ด์— ๋˜๊ฒŒ ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๋„ค์š”
๋…ธํŠธ๊ฐ€์ง€๊ณ  ํ•„๊ธฐํ•ด๊ฐ€๋ฉฐ ์–ต์ง€๋กœ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค ใ…‹ใ…‹ ใ…œใ…œ

Nร—M ๊ฒฉ์ž์— ํ•˜๋‚˜์˜ ์ž๋ฆฌ ์ˆซ์ž๋“ค์ด ๋“ค์–ด์žˆ๊ณ , ๊ทธ์ค‘ ๋ช‡ ๊ฐœ๋ฅผ ๊ณจ๋ผ์„œ ์ด์–ด ๋ถ™์ธ ์ˆ˜๋“ค ์ค‘ ์™„์ „์ œ๊ณฑ์ˆ˜๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ฐพ๋Š” ๊ฑฐ์ž–์•„์š”
๊ณ ๋ฅธ ๊ฒฉ์ž๋Š” ๋“ฑ์ฐจ ์ˆ˜์—ด ํ˜•ํƒœ๋กœ ์ถ”์ถœ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ ์ผ์ •ํ•œ ํ–‰ ๊ฐ„๊ฒฉ๊ณผ ์—ด ๊ฐ„๊ฒฉ์œผ๋กœ ์ˆซ์ž๋ฅผ ์ด์–ด ๋ถ™์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค
์ €๋„ ๋ณด๋‹ˆ๊นŒ ๋ธŒ๋ฃจ์Šคํฌ์Šค ๋ฐ–์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๊ฒ ๋”๋ผ๊ตฌ์š”
๊ทธ๋ž˜์„œ ๋ธŒ๋ฃจ์Šคํฌ์Šค ์ด์šฉํ–ˆ์Šต๋‹ˆ๋‹ค

๋ฐฉํ–ฅ๊ณผ ๋“ฑ์ฐจ, ์‹œ์ž‘ ์œ„์น˜๋ฅผ ๋ชจ๋‘ ์กฐํ•ฉํ•ด์„œ ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค์–ด ๋ณด๊ณ , ๊ทธ ์ˆซ์ž๊ฐ€ ์ œ๊ณฑ์ˆ˜๋ฉด ๊ฐฑ์‹ ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค!

์ œ ์ฝ”๋“œ๋Š” ๋งŽ์ด ์ง€์ €๋ถ„ํ•ด์„œ ํ๋ฆ„๋งŒ ๋ฆฌ๋งˆ์ธ๋“œํ–ˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค

๋ฌธ์ œ ํ‘ธ๋А๋ผ ๊ณ ์ƒ ๋งŽ์œผ์…จ์Šต๋‹ˆ๋‹ค~!

์ œ๊ณฑ ์ˆ˜ ์ฐพ๊ธฐ
#include <iostream>
#include <vector>
#include <string>
#include <cmath>
using namespace std;

static bool isSquare(long long x) {
    if (x < 0) {
        return false;
    }
    long long r = static_cast<long long>(sqrt(static_cast<long double>(x)));
    return r * r == x;
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n, m;
    cin >> n >> m;
    vector<string> a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }

    long long ans = -1;

    for (int sr = 0; sr < n; sr++) {
        for (int sc = 0; sc < m; sc++) {
            for (int dr = -n; dr <= n; dr++) {
                for (int dc = -m; dc <= m; dc++) {
                    if (dr == 0 && dc == 0) {
                        continue;
                    }
                    int r = sr;
                    int c = sc;
                    long long val = 0;
                    while (0 <= r && r < n && 0 <= c && c < m) {
                        val = val * 10 + (a[r][c] - '0');
                        if (isSquare(val)) {
                            if (val > ans) {
                                ans = val;
                            }
                        }
                        r += dr;
                        c += dc;
                    }
                }
            }
        }
    }

    cout << ans << endl;
    return 0;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants