ํƒ์ƒ‰๋ฌธ์ œ ์œ ํ˜• ์ค‘ ํ•˜๋‚˜์ธ ๋ด‰์šฐ๋ฆฌ ๊ฐœ์ˆ˜๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

๋ฌธ์ œ

N*N๊ฒฉ์žํŒ์ด ์ฃผ์–ด์ง€๊ณ  ๋†’์ด๊ฐ€ ์“ฐ์—ฌ์žˆ๋‹ค. ๊ฐ ๊ฒฉ์žํŒ์˜ ์ˆซ์ž ์ค‘ ์ž์‹ ์˜ ์ƒํ•˜์ขŒ์šฐ ์ˆซ์ž๋ณด๋‹ค ํฐ ์ˆซ์ž๋Š” ๋ด‰์šฐ๋ฆฌ ์ง€์—ญ์ด๋‹ค. ๋ด‰์šฐ๋ฆฌ ์ง€์—ญ์ด ๋ช‡ ๊ฐœ์ธ์ง€ ์•Œ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์ž. 

 

์ž…๋ ฅ์˜ˆ์ œ |

5 3 7 2 3

3 7 1 6 1

7 2 5 3 4

4 3 6 4 1

8 7 3 5 2

์ถœ๋ ฅ์˜ˆ์ œ |

10

 

์ ‘๊ทผ

1. ๊ธฐ์ค€์ ์„ ์ •ํ•˜๊ณ  ๋„ค ๋ฐฉํ–ฅ์„ ํƒ์ƒ‰ํ•œ๋‹ค. ์ด์ค‘ for๋ฌธ์œผ๋กœ 2์ฐจ์› ๋ฐฐ์—ด์„ ํƒ์ƒ‰ํ•œ๋‹ค. (if๋ฌธ ๋‚จ๋ฐœํ•˜์ง€์•Š๊ณ  ์ž‘์„ฑ)

2. ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์ƒํ•˜์ขŒ์šฐ ํฌ๊ธฐ ๋น„๊ต -> ๋‚˜๋ณด๋‹ค ํฐ๊ฒŒ ์—†์œผ๋ฉด ๋ด‰์šฐ๋ฆฌ๋‹ค -> ์นด์šดํŒ…ํ•œ๋‹ค.

 

 

ํ’€์ด

์„ธ๋ถ€์ ์œผ๋กœ ํ’€์ด๋ฅผ ํ•ด๋ณด๋ฉด,

 

1.

๋‚ด ์ขŒํ‘œ(๊ธฐ์ค€์ ) ์—์„œ ์ƒํ•˜์ขŒ์šฐ ์ขŒํ‘œ๋ฅผ ๊ตฌํ•ด์•ผํ•œ๋‹ค. 

์ž์‹ ๊ณผ ์ƒํ•˜์ขŒ์šฐ ์ˆซ์ž๋ฅผ ๋น„๊ตํ•ด์•ผํ•œ๋‹ค. ์›€์ง์—ฌ์•ผํ•  ํ–‰๊ณผ ์—ด์„ ๋ฐฐ์—ด๋กœ ์ž‘์„ฑํ•œ๋‹ค. (์‹œ๊ณ„๋ฐฉํ–ฅ) 

ํ–‰๊ณผ ์—ด์€ ์„ธํŠธ๋กœ ์›€์ง์ธ๋‹ค. 

 

์ƒ, ํ•˜ ํ–‰ ์ด๋™

ํ–‰ = [์ƒ, ์šฐ, ํ•˜, ์ขŒ]  dx = [-1, 0, 1, 0] 

์ขŒ, ์šฐ ์—ด ์ด๋™

์—ด = [์ƒ, ์šฐ, ํ•˜, ์ขŒ]  dy = [0, 1, 0, -1] 

 

2.

๋‚ด ์ขŒํ‘œ(๊ธฐ์ค€์ )์€ i๊ณผ j๊ฐ€ ์ด์ค‘for๋ฌธ์„ ๋Œ๋ฉด์„œ ์ขŒํ‘œ๋ฅผ ๊ตฌํ•œ๋‹ค. 

 

3.

์ƒํ•˜์ขŒ์šฐ, 4๋ฒˆ k for๋ฌธ ๋Œ์•„์•ผํ•œ๋‹ค.

๋‚ด ์ขŒํ‘œ์˜ ๊ฐ’๊ณผ ๋„ค ๋ฐฉํ–ฅ์˜ ์ขŒํ‘œ ๋น„๊ตํ•ด์„œ, ๋„ค ๋ฐฉํ–ฅ์ด ๋” ์ž‘์œผ๋ฉด answer++ํ•œ๋‹ค. 

let nx = i+dx[k]; → i์— -1์ด๋‚˜ 1์„ ๋”ํ•ด ํ–‰์„ ์˜ฎ๊ธด๋‹ค (์ƒํ•˜์ด๋™)
let ny = j+dy[k]; → j์— -1์ด๋‚˜ 1์„ ๋”ํ•ด ์—ด์„ ์˜ฎ๊ธด๋‹ค (์ขŒ์šฐ์ด๋™)

์ƒ → ํ–‰์ด -1๋กœ ์ด๋™ํ•  ๋•Œ ์—ด์€ 0 ์ด๋™ (์—ด ์ด๋™์—†์Œ)

ํ•˜ → ํ–‰์ด 1๋กœ ์ด๋™ํ•  ๋•Œ ์—ด์€ 0 ์ด๋™ (์—ด ์ด๋™์—†์Œ)

์ขŒ → ์—ด์ด 1 ์ด๋™ํ•  ๋•Œ ํ–‰์€ 0 ์ด๋™ (ํ–‰ ์ด๋™์—†์Œ)

์šฐ → ์—ด์ด -1 ์ด๋™ํ•  ๋•Œ ์—ด์€ 0 ์ด๋™ (ํ–‰ ์ด๋™์—†์Œ)

 

4.

flag๋Š” ๋ด‰์šฐ๋ฆฌ์ธ์ง€ ์•„๋‹Œ์ง€ ์ฒดํฌํ•œ๋‹ค.

flag๊ฐ€ 0์ด๋ฉด answer ์นด์šดํŒ… ์•ˆ๋˜๊ณ , 1์ด๋ฉด ์นด์šดํŒ…๋œ๋‹ค. 

 

์ฝ”๋“œ

function solution(arr){
            let answer = 0; //์นด์šดํŒ…ํ•ด์•ผ๋˜๋‹ˆ๊นŒ 0์œผ๋กœ 
            let n = arr.length;
            let dx = [-1, 0, 1, 0];
            let dy = [0, 1, 0, -1];
            for(let i=0; i<n; i++){
                for(let j=0; j<n; j++){
                    let flag=1;
                    for(let k=0; k<4; k++){ // 4๋ฐฉํ–ฅ์ด๋ผ์„œ 4๋ฒˆ๋Œ๋„๋ก ๋งž์ถค
                        let nx = i+dx[k]; // ๊ฐ€๋ ค๊ณ ํ•˜๋Š” ๋ฐฉํ–ฅ ํ–‰ ์ขŒํ‘œ
                        let ny = j+dy[k]; // ๊ฐ€๋ ค๊ณ ํ•˜๋Š” ๋ฐฉํ–ฅ ์—ด ์ขŒํ‘œ 
                        if(nx>=0 && nx<n && ny>=0 && ny<n && arr[nx][ny] >= arr[i][j]){ 
                            // arr[nx][ny]์ƒํ•˜์ขŒ์šฐ์ขŒํ‘œ >= ํ˜„์žฌ์ง€์ ์ขŒํ‘œ arr[i][j]
                            // nx>=0 && nx<n && ny>=0 && ny<n๋Š” 
                            // ๋‚ด ์ƒํ•˜์ขŒ์šฐ๊ฐ€ ๋„ค๋ฐฉํ–ฅ์œผ๋กœ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋‹ˆ ๊ทธ ๊ฒฝ์šฐ๋Š” ์ œ์™ธํ•˜๋Š” ์กฐ๊ฑด
                            // ํ˜„์žฌ์ง€์  ์ขŒํ‘œ๋ณด๋‹ค ํฐ๊ฒŒ ์žˆ์œผ๋ฉด ๋ด‰์šฐ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋‹ค. ์ด๊ฑธ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ flag๋ณ€์ˆ˜ ์ž‘์„ฑํ•ด์ค€ ๊ฒƒ
                            flag=0;
                            break; // k for๋ฌธ ๋ฉˆ์ถค
                        }  
                    }
                    if(flag) answer++; 
                    // ์ƒํ•˜์ขŒ์šฐ ๋‹ค ๋Œ๊ณ  ๋‚˜์™€์„œ flag๊ฐ€ ๊ทธ๋Œ€๋กœ์ด๋ฉด answer++ ํ•ด์ค€๋‹ค
                }
            }
            return answer;
        }

    let arr = [[5, 3, 7, 2, 3],
                [3, 7, 1, 6, 1],
                [7, 2, 5, 3, 4],
                [4, 3, 6, 4, 1],
                [8, 7, 3, 5, 2]];
    console.log(solution(arr));

+ Recent posts