본문 바로가기
코테연습

29.Take a Ten Minutes Walk

by hxunz 2022. 4. 4.

Description:

You live in the city of Cartesia where all roads are laid out in a perfect grid. You arrived ten minutes too early to an appointment, so you decided to take the opportunity to go for a short walk. The city provides its citizens with a Walk Generating App on their phones -- everytime you press the button it sends you an array of one-letter strings representing directions to walk (eg. ['n', 's', 'w', 'e']). You always walk only a single block for each letter (direction) and you know it takes you one minute to traverse one city block, so create a function that will return true if the walk the app gives you will take you exactly ten minutes (you don't want to be early or late!) and will, of course, return you to your starting point. Return false otherwise.


function isValidWalk(walk) {
  let ns = 0;
  let we = 0;
  
  for (i=0; i < walk.length; i++) {
    if (walk[i] === 'n') {
      ns += 1;
    } else if (walk[i] === 's') {
      ns -= 1;
    } else if (walk[i] === 'w') {
      we += 1;
    } else {
      we -= 1;
    }
  }

  return walk.length === 10 && ns === 0 && we === 0 ? true : false;
}

10분 동안 산책을 하고 다시 처음 지점으로 돌아와야하기 때문에 왕복이라고 생각하고 계산해봤다.

배열의 총 길이만큼 반복을 하면서 n 만큼 걸어가면 + 1을 해주고 s 만큼 걸어가면 돌아오는 길이라고 생각해서 -1을 해주었다.

처음 지점으로 돌아왔다면 ns는 0이 될 것이다.

 

이거랑 똑같이 we도 처리해주었다. 

 

그리고 마지막에 return은 10분 동안 걸었어야했기 때문에 walk.length가 10이어야하고 ns와 we가 0 이면 true를 return하고 그렇지 않으면 false를 return 했다.

'코테연습' 카테고리의 다른 글

31.Replace With Alphabet Position  (0) 2022.04.07
30.Persistent Bugger.  (0) 2022.04.04
28.Duplicate Encoder  (0) 2022.04.04
27.Counting Duplicates  (0) 2022.04.03
26.Find The Parity Outlier  (0) 2022.04.02

댓글