https://school.programmers.co.kr/learn/courses/30/lessons/181901?language=javascript

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

우선 

function solution(n, k) {
    let a =[] ;
    
    for(let i =1; i<n; i++){
        if(n%k == 0){
            a.push(i)
        }
          return a;
    }
   // return a;
}

첫번째 내코드인데 이렇게 작성하면 안되고 n%k 부분을 

 

 function solution(n, k) {
    var answer = [];

   for(let i = 1; i<=n; i++){
       if(i%k == 0){
           answer.push(i)
        }
    }
    return answer;
 }

이런식으로  i를k로 작성해야하고 return을 밖에 써야한다는것을 깨달았다. 

간단하다 ㅎㅎ

 

또다른 방법으로 

function solution(n, k) {
    var answer = [];
    for(let i = k ; i <= n; i+=k){
        answer.push(i)
    }
    return answer;
}

i를 k부터 시작하고 k차이만큼 더해주는 방식이 있다

console.log는 

값을 결과로 정의하지 않고, 단순 결과값을 콘솔창에 표시하라는 의미로 볼수있습니다. 

 

return문은 


다음의 결과로 함수의 값을 정의하고 함수를 종료하라는 의미로 볼수있습니다.

그럼으로, return문 뒤에 console.log 를 작성해도 console이 실행되지 않습니다.

 

 

위의 사진을보면 보다 이해하기 쉽다

https://school.programmers.co.kr/learn/courses/30/lessons/181888

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

위의 문제에서 n의 차이만큼 추출하는게 관건인데

 

function solution(num_list, n) {
    let answer = [];

     for(let i = 0; i<num_list.length; i+=n){
         answer.push(num_list[i])
     }

    return answer;
}

 

위의 코드와 같이 i와같은 변수를 써주고 i+=n 이런식으로 하는게 포인트인것 같다 

(이부분때문에 해맴 )

 

https://school.programmers.co.kr/learn/courses/30/lessons/181889

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

function solution(num_list, n) {
    let a =[];
    for(i=0; i<n; i++){ 
           a.push(num_list[i])
    }    
    return a;
}

위의 해결법하고

 

 slice()를 이용해서 추출가능하다 

https://school.programmers.co.kr/learn/courses/30/lessons/181939

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(a, b) {
    return Math.max(Number(`${a}${b}`), Number(`${b}${a}`))
}

위와같이 백틱을 사용해서 문자열로 변환해줄수있다.

ES6 문법인 Template String(템플릿 문자열)을 이용해서 숫자를 문자열로 변환할수 있습니다.

 

 

 

사용하는 이유 

리액트에서는 최상위에 태그를 하나로 감싸줘야하는데 fragment는 메모리를 안쓰고 div태그 없이 태그를 감싸줄수있다.

 

 

<> </> 태그와 Fragments 의 차이점

 

 

ex) key가 있는 Fragments

Fragments에 key가 있다면 <React.Fragment> 문법으로 명시적으로 선언해야 합니다. 예를 들어 정의 목록을 만들기 위해 컬렉션을 fragments 배열로 매핑하는 사용 사례입니다.

function Glossary(props) {
  return (
    <dl>
      {props.items.map(item => (
        // React는 `key`가 없으면 key warning을 발생합니다.
        <React.Fragment key={item.id}>
          <dt>{item.term}</dt>
          <dd>{item.description}</dd>
        </React.Fragment>
      ))}
    </dl>
  );
}

 

참고) 

https://ko.legacy.reactjs.org/docs/fragments.html

 

Fragments – React

A JavaScript library for building user interfaces

ko.legacy.reactjs.org

 

+ Recent posts