AI Native 레벨별 코테

레벨 1 · 기초 · 데이터와 입력

중첩 로그 비밀정보 가리기

중첩 객체와 배열에서 민감한 필드를 가립니다.

문제 설명

function solution(logs, fields)를 작성하세요. 입력과 출력은 모두 JSON으로 표현 가능한 값입니다. 입력 배열과 객체를 직접 변경하면 안 돼요. 외부 라이브러리, 네트워크 요청, 비동기 함수는 사용할 수 없어요. logs:JSON[], fields:string[]. 객체의 키가 fields 중 하나와 대소문자 무관하게 일치하면 값 전체를 '[REDACTED]'로 바꿉니다. 그 외 객체·배열은 재귀적으로 처리합니다. 원시값과 null은 유지합니다. fields의 공백은 제거하지 않습니다. 키 '__proto__'도 일반 키로 보존합니다. 최대 중첩 깊이 20. 순서를 유지한 새 배열을 반환합니다. 입력 범위: 각 입력 배열은 최대 50,000개 항목, 문자열은 최대 1,000자입니다. 숫자는 유한한 값이며, 정수와 합산 결과는 JavaScript의 안전한 정수 범위 안에 있습니다. 그 외 자료형과 유효성 조건은 위 규칙을 따릅니다.

입출력 예시

예시 1

함수 인자

[
  [
    {
      "token": "abc",
      "message": "ok"
    }
  ],
  [
    "token"
  ]
]

반환값

[
  {
    "token": "[REDACTED]",
    "message": "ok"
  }
]
예시 2

함수 인자

[
  [
    {
      "nested": {
        "PASSWORD": "p"
      },
      "tags": [
        "x"
      ]
    }
  ],
  [
    "password"
  ]
]

반환값

[
  {
    "nested": {
      "PASSWORD": "[REDACTED]"
    },
    "tags": [
      "x"
    ]
  }
]
예시 3

함수 인자

[
  [
    {
      "user": {
        "name": "Alex"
      },
      "token": null
    }
  ],
  [
    "token"
  ]
]

반환값

[
  {
    "user": {
      "name": "Alex"
    },
    "token": "[REDACTED]"
  }
]
연습에는 포인트·제한 시간·제출 횟수가 없습니다. AI와 검색을 자유롭게 활용하고, 로그인 후 공개 예제를 실행하거나 로컬에서 검증하세요.

66 / 20,000자

내 테스트 추가 · 선택

logs, fields 순서의 인자를 JSON 배열로 입력하세요. 예제 3개와 이 테스트를 함께 실행합니다.

예제 검증 파일

두 파일을 같은 폴더에 저장하고 Node.js로 아래 명령을 실행하세요. 결과의 checks에서 예제별 통과 여부를 볼 수 있습니다.

node verify-redact-logs.mjs
문의하기

서비스명: 포트포올
문의는 운영자에게 이메일로 전송됩니다.

이메일과 문의 내용은 답변을 위해 운영자 및 메일 발송 서비스로 전송됩니다. 비밀번호·결제정보·민감한 개인정보는 입력하지 마세요.