Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- emotion RSC
- 백준 1339번 nodejs
- js 문자열 압축
- 백준 2108 nodejs
- suspense 병목현상
- 카카오 코테
- app router emotion
- js 스코프
- 사용성 개선
- suspense 동작원리
- 리액트쿼리 suspense
- js
- suspense 비동기
- 구름톤 챌린지 회고
- 백준 1339번 자바스크립트
- suspense react-query
- 백준 2108 자바스크립트
- 스코프
- next13 emotion
- js 거리두기 확인하기
- 구름톤 챌린지
- 백준 1339번 js
- 프로그래머스 거리두기 확인하기
- 구름톤
- emtion app router
- 자바스크립트 문자열 압축
- TypeError: createContext only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more:
- 자바스크립트 스코프
- 옵셔널체이닝
- 프로그래머스 문자열 압축
Archives
- Today
- Total
Lennon FE
[프로그래머스] 거리두기 확인하기 (js) 본문
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/81302?language=javascript
function solution(places) {
const leng = places[0].length;
return places.map(v => {
let check = 1;
Loop2 :
for(let j = 0; j < leng; j++){
if(v[j].includes('PP') || v[j].includes('POP')) {
check = 0;
break;
}
for(let k = 0; k < leng; k++){
if(j < leng-2 && v[j][k]==='P' &&
v[j+1][k]==="O" && v[j+2][k]==="P") {
check = 0;
break Loop2;
} // 세로 POP
else if(j < leng-1 && v[j][k]==='P' && v[j+1][k]==="P") {
check = 0;
break Loop2;
} // 세로 PP
else if(j < leng-1 && k < leng -1 && (v[j][k]==='P' && v[j+1][k+1]==='P') &&
(v[j+1][k]==='O' || v[j][k+1]==='O')) {
check = 0;
break Loop2;
} // 대각선 PO PX PO
// OP OP XP
else if(j < leng-1 && k < leng -1 && (v[j][k+1]==='P' && v[j+1][k]==='P') &&
(v[j][k]==='O' || v[j+1][k+1]==='O')) {
check = 0;
break Loop2;
} // 반대 대각선 OP XP OP
// PO PO PX
}
}
return check;
})
}
결과값이 배열형태라 map으로 바로 리턴하였다.
거리두기가 안되는 상황의 경우의 수를 모두 찾아 인덱스를 조심하며 검증한다.
만약 거리두기가 안되는 경우이면 check에 0을 대입하고, 효율성을 위해 바로 모든 반복문을 빠져 나간다
(break Loop2;)
그 후 바로 리턴하면 결과값을 찾을 수 있다.
이런 문제는 index를 조심하며 검증해야한다.
만약 Cannot read property '0' of undefined 해당 오류가 뜨면 index쪽에 오류가 생긴거니까 잘 파악하자.
ex) index를 넘어서거나 index가 음수
728x90
반응형
'🔥 Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] 수식 최대화 (js) (0) | 2021.10.31 |
---|---|
[프로그래머스] 1차 프렌즈4블록 (js) (0) | 2021.10.31 |
[프로그래머스] 메뉴 리뉴얼 (js) (0) | 2021.10.30 |
[프로그래머스] 위클리 챌린지 10주차 교점에 별 만들기 (js) (0) | 2021.10.30 |
[프로그래머스] 3차 압축 (js) (0) | 2021.10.29 |
Comments