JavaScirpt와 Python 부등식 차이점

Kyuuu_ul·2023년 11월 27일

JavaScript

목록 보기
1/3

최근 자바스크립트로 알고리즘 문제를 풀던중 graph 탐색 문제에서 이상한 점을 발견했다.
평상시 4방향 문제 알고리즘을 해결할때 파이썬으로 다음과 같이 해결했다.

dx = [-1,1,0,0]
dy = [0,0,-1,1]
for i in range(4):
	nx = x + dx[i]
    ny = y + dy[i]
   
   	if (0<= nx < w and 0<= ny < h):
   		dfs(nx, ny)

자바스크립트로 graph를 처음 풀어봐 파이썬과 동일하도록 이렇게 구현했었다.

const dx = [-1,1,0,0]
const dy = [0,0,-1,1]

for(let i =0; i<4; i++){
	nx = x + dx[i]
    ny = y + dy[i]
}
	
if (0<= nx < w && 0<= ny < h){
  	dfs(nx, ny)
}
(0<= nx < w && 0<= ny < h)

이부분에서 파이썬과 동일하게 동작하지 않아 이유를 찾아보니..

자바스크립트에서는 비교 연산자인 "<"를 연속해서 사용하여 여러 개의 비교식을 연결할 수 없다고 한다.

결국 "0 <= nx < w && 0 <= ny < h"와 같은 표현은 자바스크립트에서 예상한 대로 동작하지 않는다.

if (0<= nx && nx < w && 0<= ny && ny < h){
  	dfs(nx, ny)
}

따라서 다음과 같이 사용해야 한다.

0개의 댓글