N*N
격자판이 주어진다. 각 격자판의 숫자중 자신의 상하좌우 숫자보다 큰 숫자는 봉우리 지역이다. 봉우리 지역이 몇개인지 알아내는 프로그램을 작성하세요.
function solution(arr){
let answer = 0;
let dx = [-1,0,1,0] //행 //12시 3시 6시 9시 방향
let dy = [0,1,0,-1] //열
let n = arr.length;
for(let i =0; i < n; i++){
for(let j =0; j < n; j++){
let flag = 1
for(let k =0; k < n; k++){
let nx = i + dx[k] //행
let ny = j + dy[k] //열
if(arr[i][j] <= arr[nx][ny]){
flag = 0
break;
}
}
if(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]];
flag 만들기
한개의 문자열 word와 문자 letter가 주어지면 word의 각 문자가 문자 letter와 떨어진 최소 거리를 출력하는 프로그램 작성하기
teachermode , e
[1,0,1,2,1,0,1,2,2,1,0]
function solution(word,letter){ // "teachermode","e"
let answer = []
let p = 1000;
for(let x of word){
if(x === letter){
p = 0
answer.push(p)
} else {
p++
answer.push(p)
}
}//answer = [1000,0,1,2,3,0,1,2,3,4,0]
p= 1000;
for(let i= word.length -1; i >= 0; i--){
if(word[i] === letter) p = 0
else{
p++
answer[i] = Math.min(answer[i],p)
}
}
return answer
}
let str = "teachermode";
console.log(solution2(str, 'e'));