hackerrank Day4: Count Objects 풀어보기

바질·2022년 12월 19일
0

hackerrank 에서 문제를 풀어보았다. 언어는 javascript로 설정했다.
사유: 코딩 테스트 준비 겸 연습하자는 의미이다.
알고리즘 문제는 아니지만 생각을 요구하는 문제 및 자바스크립트 문법을 알고 있어야 한다. (메서드나 클래스 등)

오늘은 Day4: Count Objects 라는 문제를 풀어보겠다.
푼 문제는 더 많은데 하나 집어서 미리 게시하고 나중에 더 작성해야지.

문제:
objects가 매개변수로 들어오는데 objects 안에는 xy가 있다. x, y가 서로 똑같은 정수이면 count+1 해주면 되는 간단한 문제이다.
(실제 사이트 문제는 영어이고 위는 내가 독해한 글을 쓴 것)

/*
 * Return a count of the total number of objects 'o' satisfying o.x == o.y.
 * 
 * Parameter(s):
 * objects: an array of objects with integer properties 'x' and 'y'
 */
function getCount(objects) {
    
}

getCount 함수 안에 작성하면 되는데, test input은 다음과 같다.

[
  { x: 1, y: 1 },
  { x: 2, y: 3 },
  { x: 3, y: 3 },
  { x: 3, y: 4 },
  { x: 4, y: 5 }
]

그럼, 저 input을 보고 문제를 풀어보자.
우선, 배열로 들어오는 값을 하나하나 순회해주어야 하니 for 구문을 사용하겠다. 또한 xy의 값이 같으면 count의 값을 +1 해야하니 이것도 변수로 빼주었다.

function getCount(objects) {
  	let cnt=0; //초기값 0
    for(let i=0; i<objects.length; i++){ 
      // objects의 test input에서는 개수가 5개지만, 실제 값을 제출했을 때 objects의 개수가 몇개 들어올지 모르니 매개변수의 개수로 잡아준다.
      if(objects[i].x == objects[i].y){
        // 들어오는 objects는 배열이다. 즉, 인덱스를 사용하여 첫번째 오브젝트의 값을 가져올 수 있다.
        // 값이 순회하며 x와 y의 값이 같은지 확인할 것이다. (type 은 확인하지 않는다)
        cnt=cnt+1;
        // 조건이 true라면 cnt 변수에 +1이 된다.
      }
      return cnt;
      // 마지막으로 모든 문을 순회하고 나서 cnt를 리턴하면 x와 y의 값이 같은 오브젝트가 몇개인지 알 수 있다.
}


  

0개의 댓글