javascript/프로그래머스

[코딩테스트 연습] level 1. 바탕화면 정리

sewonzzang123 2023. 3. 24.
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/161990

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

설명이 길어서 그렇지 내용은 별거 없었다.

 

function solution(wallpaper) {
    var answer = [];
    
    let lux,luy,rdx,rdy = 0;
    for(let wallpaperLength = 0; wallpaperLength < wallpaper.length; wallpaperLength++){ 
        for(let wallpaperInnerLength = 0; wallpaperInnerLength < wallpaper[0].length; wallpaperInnerLength++){
            if(wallpaper[wallpaperLength][wallpaperInnerLength] === "#")
                {
                // 시작점 가장 작은거 넣으면 되지 않을까?
                // 끝점 #위치가 있는 곳 가장 큰거만 rdx, rdy에 넣으면 될거같음.
                    lux = lux < wallpaperLength ? lux : wallpaperLength;
                    luy = luy < wallpaperInnerLength ? luy : wallpaperInnerLength;
                    rdx = rdx > wallpaperLength ? rdx : wallpaperLength;  
                    rdy = rdy > wallpaperInnerLength ? rdy : wallpaperInnerLength;
                }
        }

    }
    
    answer = [lux, luy, rdx+1, rdy+1];
    
    return answer;
}

 

 

 

function solution(wallpaper) {
    let left = [];
    let top = [];
    let right = []
    let bottom = [];
    wallpaper.forEach((v,i) => {
        [...v].forEach((val,ind) => {
            if(val === "#") {
                left.push(i)
                top.push(ind)
                right.push(i + 1)
                bottom.push(ind + 1)
            }
        })
    })
    return [Math.min(...left), Math.min(...top), Math.max(...right), Math.max(...bottom)]
}

파일이 있는 위치만 구해서 배열 안에 넣은 후 min값과 max값으로 결과값을 찾아내는 방법이 있었다.

 

 

 

유연한 사고..!!

반응형

댓글