정답표와 맞은 칸 개수 세기

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

today easy same-position-comparison 함수명: solution 제한 시간: 200ms

문제 설명

정답표 문자열 answer와 제출한 답 문자열 guess가 주어집니다. 두 문자열의 길이는 항상 같다고 할 때, 같은 위치에 같은 문자가 적힌 칸의 개수를 반환하는 solution 함수를 작성하세요.

예를 들어 answer = "ABCD", guess = "ABCF"라면 0번, 1번, 2번 위치가 같으므로 3을 반환합니다.

제한사항

  • answerguess는 문자열입니다.
  • 두 문자열의 길이는 같습니다.
  • 문자열 길이는 0 이상 100,000 이하입니다.
  • 각 문자는 영문 대문자 또는 O, X 같은 기호일 수 있습니다.
  • 반환값은 같은 위치에서 문자가 일치한 칸의 개수입니다.

예시

  • 입력: "ABCD", "ABCF" → 출력: 3
  • 입력: "AAAA", "BBBB" → 출력: 0
  • 입력: "", "" → 출력: 0

힌트

  • 두 문자열을 같은 인덱스 i로 동시에 확인해 보세요.
  • answer[i]guess[i]가 같을 때만 개수를 1 늘리면 됩니다.

해설

이 문제는 두 문자열 전체가 같은지 판단하는 문제가 아니라, 각 위치별로 문자가 같은 횟수를 세는 문제입니다.

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

  1. 일치한 칸 수를 저장할 변수 count0으로 시작합니다.
  2. 인덱스 0부터 answer.length - 1까지 순회합니다.
  3. 현재 위치에서 answer[i]guess[i]가 같으면 count를 1 증가시킵니다.
  4. 모든 위치를 확인한 뒤 count를 반환합니다.

문자열을 한 번만 순회하므로 시간 복잡도는 O(n)이고, 추가 공간은 상수만 사용합니다.

코드 작성

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

JavaScript 에디터 로딩 중...

커스텀 테스트

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

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

실행 결과

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

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

댓글

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