TIL

dev-whol·2021년 5월 13일
0

✍🏻 반복문 복기

1.

자연수를 입력받아 2부터 해당 수까지의 수소 리턴하시오.

입출력 예시

1
2
let output = 소수를 리턴하는 문자열(18);
console.log(output); // --> '2-3-5-7-11-13-17'
cs

풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function 소수를 리턴하는 문자열(num) {
  //문자열을 받을 변수 지정
  //소수는 2부터 시작이니 초기값 '2'
  let result = '2';
  //for문으로 순회
  //짝수는 소수가 될수 없으니 홀수만 순회
  for(let i = 3; i <= num; i+=2){ 
    let test = true;
    //num의 i번째의 수(홀수만)를 3부터 2씩 증가하면서 소수인지 확인
    let sqrt = parseInt(Math.sqrt(i))
    for(let j = 3; j <= sqrt; j+=2){
      //소수면 test는 false;
      //다음은 볼 필요가 없으니 break로 다음 i번째로 반복
      if(i % j === 0){
        test = false;
        break;
      }
    }
    if(test){
      result = `${result}-${i}`;
    }
  }
  return result;
}
cs

2.

해당 문자열에 등장하는 각 문자를 가지고 만들 수 있는 길이 2의 문자열들을 리턴하시오.

입출력 예시

1
2
let output = 각 길이 2의 문자열 리턴('ab');
console.log(output); // --> 'aa,ab,ba,bb'
cs

풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
function 각 길이 2의 문자를 리턴(str) {
  //문자열을 담을 변수 지정
  let result = "";
  //for문으로 문자열 길이까지 순회
  for(let i = 0; i < str.length; i++){
    //한번더 for문으로 길이 순회
    for(let j = 0; j < str.length; j++){
      result = result + str[i] + str[j] + ","
    }
  }
  //마지막 , 
  return result.slice(0,result.length-1);
}
cs

3.

해당 문자열에 중복된 문자가 존재하는지 여부를 리턴하시오

입출력 예시

1
2
let output = 중복 문자 여부('abcdefghijklmnopqrstuvwxyz');
console.log(output); // --> false
cs

풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
function 중복 문자 여부(str) {
  //for문으로 문자열 길이 순회
  for(let i = 0; i < str.length; i++){
    //i의 +1부터 시작
    for(let j = i+1; j < str.length; j++){
      //같으면 true
      if(str[i] === str[j]){
        return true;
      }
    }
  }
  return false;
}
cs

0개의 댓글