알고리즘 - Lv2. 가장 큰 수

윤영훈·2021년 3월 7일
0
post-thumbnail

문제

나의 풀이

문제를 푼 방식

먼저 매개변수로 받아온 값을 2진법으로 변환 후, for문을 통해 각 인덱스 값이 1인 순간 numberCount의 값을 누적시키고 n의 다음 숫자부터 확인을 하기 위해 nextNumber 초기값을 number+1을 주고 while문을 통하여 2진수로 변환하여 1의 개수를 비교하였을 때, 같으면 nextNumber를 리턴시키고 함수를 종료하게 만들었다. 같지 않을 경우 nextNumber에 1을 더하여 while 루프를 다시 계산.

다른사람의 풀이

.

다른사람의 풀이 방법

String에서 제공하는 match(regexp)함수를 사용하여 문제 해결.

  1. 매개변수로 받아온 수를 2진법으로 변환 후, match() 와 length()를 사용하여 매치되는 1의 개수를 size 변수값으로 선언.

  2. while문을 통하여 n을 증가하면서 2진법으로 변환했을때 1의 개수를 size와 비교하면서 일치할때 값을 리턴시켰다.

match 함수와 정규식에 대한 이해 필요

String.prototype.match()

문법

str.match(regexp)

=> 문자열이 정규식과 매치되는 부분을 검색합니다.

결과값

문자열이 정규식과 일치하면, 일치하는 전체 문자열을 첫 번째 요소로 포함하는 Array를 반환한 다음 괄호 안에 캡처된 결과가 옵니다. 일치하는 것이 없으면 null이 반환됩니다.

0개의 댓글