반응형

문제풀이

1.  각 행을 탐색하며 첫번째 #과 마지막 #의 위치를 찾습니다. (ES 버전문제인지, 마지막 #의 위치는 findLastIndex() 함수가 사용되지 않아 reverse()를 이용하여 뒤집어서 찾았습니다.)

2. 행의 위치의 경우 #이 존재하는 첫번째 행과, 마지막행+1(드래그 때문)로 설정해줍니다.

 

JS Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//https://school.programmers.co.kr/learn/courses/30/lessons/161990
function solution(wallpaper) {
    var answer = [-1,51,0,0];
    let rSize = wallpaper.length;
    let cSize = wallpaper[0].length;
    
    wallpaper.map(function(row, i){
        const tmp = row.split('');
        const min = tmp.findIndex((e) => e == '#');
        // findLastIndex 함수가 사용 안되서 뒤집어서 맨 뒤의 # 위치 찾기
        const maxTmp = tmp.reverse().findIndex((e) => e == '#');
        const max = (maxTmp != -1) ? cSize - maxTmp : -1
        
        if ( min != -1 && max != -1){
            if ( answer[0== -1 ){
                answer[0= i;
            }
            answer[2= i;
        }
        if ( min != -1 && min < answer[1] ){
            answer[1= min;
        }
        if ( max != -1 && max > answer[3]){
            answer[3= max;
        }
    })
    answer[2]++;
    return answer;
}
cs

 

 

문제 링크

 

프로그래머스

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

programmers.co.kr

 

반응형

+ Recent posts