활성 설정 개수 세기

자바스크립트 코딩테스트 문제로 object-basics 주제를 연습해보세요. 난이도는 easy이며, 브라우저에서 바로 JavaScript로 풀이를 실행할 수 있습니다.

js-basic easy object-basics 함수명: solution 제한 시간: 200ms

불리언 값만 담긴 객체 settings가 주어질 때, 값이 true인 설정의 개수를 반환하는 solution 함수를 작성하세요.

오늘의 메서드

Object.keys()는 객체에 들어 있는 키 이름들만 배열로 꺼내는 메서드입니다.

메서드 설명

이 문제에서는 설정 객체 안에 어떤 항목들이 들어 있는지 먼저 알아야 합니다. Object.keys()를 사용하면 객체의 키들을 배열로 얻을 수 있고, 그 배열을 순회하면서 각 설정 값이 true인지 확인할 수 있습니다.

예를 들어 { darkMode: true, emailAlert: false, autoSave: true }Object.keys()를 적용하면 ['darkMode', 'emailAlert', 'autoSave']를 얻습니다. 이후 각 키로 원래 객체에 접근해서 값이 true인 항목만 세면 됩니다.

기본 문법

Object.keys(obj)

사용 예시

const settings = {
  darkMode: true,
  emailAlert: false,
  autoSave: true,
};

Object.keys(settings); // ['darkMode', 'emailAlert', 'autoSave']
settings['darkMode']; // true
settings['emailAlert']; // false

주의할 점

  • Object.keys()의 결과는 배열입니다.
  • Object.keys()는 키 이름만 알려 주므로, 실제 값은 settings[key]처럼 다시 꺼내야 합니다.
  • 값이 false인 키도 객체 안에는 존재하므로, 키 개수 전체를 반환하면 안 됩니다.
  • 이 문제에서는 모든 값이 불리언이라고 가정합니다.

제한사항

  • settings는 1개 이상 50개 이하의 키를 가진 객체입니다.
  • 각 값은 true 또는 false입니다.
  • 키 이름은 서로 중복되지 않습니다.
  • 반환값은 값이 true인 설정의 개수입니다.

예시

  • 입력: { darkMode: true, emailAlert: false, autoSave: true } → 출력: 2
  • 입력: { sound: false, vibration: false } → 출력: 0
  • 입력: { backup: true } → 출력: 1

힌트

  • 먼저 객체의 키 목록을 배열로 꺼내 보세요.
  • 키를 하나씩 보면서 settings[key]true인지 확인하면 됩니다.
  • true일 때만 개수를 1 증가시키면 됩니다.

해설

이 문제의 핵심은 객체의 모든 설정 항목을 순회하면서 활성화된 것만 세는 것입니다.

풀이 흐름은 다음과 같습니다.

  1. Object.keys(settings)로 설정 이름 목록을 배열로 만듭니다.
  2. 그 배열을 처음부터 끝까지 확인합니다.
  3. 현재 키를 key라고 할 때, settings[key] === true이면 개수를 1 증가시킵니다.
  4. 순회가 끝나면 누적한 개수를 반환합니다.

예를 들어 { darkMode: true, emailAlert: false, autoSave: true }라면:

  • darkModetrue이므로 카운트 +1
  • emailAlertfalse이므로 그대로
  • autoSavetrue이므로 카운트 +1

최종 결과는 2입니다.

이 문제의 학습 포인트는 객체를 다룰 때 Object.keys()무슨 키가 들어 있는지 먼저 파악하고, 그다음 각 키로 값에 접근하는 흐름을 익히는 것입니다. 초급 단계에서는 객체 전체를 바로 다루기보다, 키 목록을 배열처럼 순회한다고 생각하면 이해하기 쉽습니다.

코드 작성

starter code를 바탕으로 함수를 완성한 뒤 예제 테스트를 실행해보세요.

JavaScript 에디터 로딩 중...

커스텀 테스트

함수 인자를 JSON 배열 형태로 입력하세요. 예: [3, 5], [[1, 2, 3]]

아직 실행하지 않았습니다.

실행 결과

아직 실행하지 않았습니다.

예제 테스트를 실행하면 여기에서 결과를 확인할 수 있습니다.

댓글

문제 풀이 아이디어, 질문, 반례를 자유롭게 나눠보세요.