수(num)를 입력받아 1을 포함하여 num개의 홀수로 구성된 문자열을 리턴해야 합니다.
입력
인자 1 : num
number 타입의 정수 (num >= 1)
출력
string 타입을 리턴해야 합니다.
주의 사항
반복문(while)문을 사용해야 합니다.
숫자(number string) 사이의 구분은 없습니다. ('13579')
입출력 예시
let output = makeOddDigits(3); console.log(output); // --> "135"
output = makeOddDigits(5); console.log(output); // --> "13579"
처음에 아래와 같이 접근 하였지만, 잘 풀리지 않음.. 왜그런건지 휴,. 머리가 굳은것인지 알고리즘에 대한 이해도가 떨어지는것같다.
1 + ( 2 x 0 ) = 1
1 + ( 2 x 1 ) = 3
1 + ( 2 x 2 ) = 5
1 + ( 2 x 3 ) = 7
1 + ( 2 x count )
하지만 계속 생각해보다 그냥 더 원초적으로 아주 기초에서부터 다시 해보기로 하고 모든 경우의 수를 쪼개어 보았다.
1, 3, 5, 7 그렇다면 +2씩 증가되는것인데. while문에서 i++로 while문의 조건식에 부합할때까지 반복하는것을 활용하여,
함수 내부변수에 count = 1; 을 넣은것을 String으로 변환하여 최종값으로 리턴할 변수에 넣어본다.
result = result + Stirng(count); 그렇다면 result의 초기 할당값은 0이 되어야한다? 하지만 그렇게 되면 번거롭게 숫자를 문자열로 변환해야한다. 그러므로 문자열 + 숫자열은 문자열이 되는것을 활용하여, result 할당값을 빈 문자열로 할당해보자 (result = '';)
while문 밖에 하지만 함수의 안에 함수 내부변수인 let result = '';이라는 값을 생성 초기화 할당한다.
count = count + 2; 이라는 식이 이제 성립된다.
while ( i < num ) {
result = result + String(count);
count = count + 2;
i++;
}
로 result에다가 원하는 값들을 문자열로서 저장이 되었다.
골치아픈 문제인데 다음에 만나도 잘 해결 할 수 있을지 모르겠다.