1206 알고리즘

냐하호후·2021년 12월 6일
0

봉우리

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'));
profile
DONE is better than PERFECT

0개의 댓글

관련 채용 정보