5월 4일 알고리즘 연습문제

2023. 5. 5. 12:14·DAILY

 

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

const operations = {
    '>=': (n, m) => n >= m,
    '<=': (n, m) => n <= m,
    '>!': (n, m) => n > m,
    '<!': (n, m) => n < m,
}

function solution(ineq, eq, n, m) {
    var answer = 0;
    
    const op = operations[ineq + eq];
    answer = Number(op(n, m));
    return answer;
}

solution("<", "=", 20, 50, 1);

 

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


1. for문 break, continue
for문 내 if문에서 return, break를 사용하면 for 에서 빠져나온다.
if문에서 다음코드는 실행하지 않고 for문을 돌리고 싶다면 continue;를 사용하면 된다. 

 

2. true, false를 숫자로 변환했을 때 

Number(true); //1

Number(false); //0

 

3. for of 에서 index사용하기

for of를 사용하면 index를 사용할 수 없다. 이런경우에 entries()를 사용해 index를 받을 수 있다. 

for (const [index, value] of ['a', 'b', 'c', 'd', 'e'].entries()) {
  console.log(index, value); 
}
/*
0 'a'
1 'b'
2 'c'
3 'd'
4 'e'
*/
function solution(code) {
    var answer = '';
    let mode = false;
  
    for(let [idx, letter] of code.split('').entries()) {
        if (letter === '1') {
          mode = !mode;
          continue;
        } 
        
        // mode가 0이거나, 짝수일 때
        if (Number(mode) === 0 && idx % 2 === 0) {
          answer += letter;
          continue;
        }

        // mode가 1이거나, 홀수일 때
        if (Number(mode) === 1 && idx % 2 !== 0) {
          answer += letter;
          continue;
        }
    }
    
    answer = answer || 'EMPTY';
    return answer;
}

solution("abc1abc1abc");

 

등차수열

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

 

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


1. 배열에 같은 숫자가 몇개인지 체크하는 로직 
간단한 방법으로 new Set()을 사용하는 방법이 있다. 
중복값을 처리해준다. 
new Set([ 1, 2, 3, 3, 4, 5]) => [1, 2, 3, 4, 5];

2. 제곱근 함수

Math.pow(7, 2) === 7 ** 2

const calculate = (numbers, times) => {
    const [a, b, c] = numbers;
    let result = 1;

    for(let i = 1; i <= times; i++) {
        result *= a ** i + b ** i + c ** i;
    }
    
    return result;
}

function solution(a, b, c) {
    var answer = 0;
    const numbers = [a, b, c];
  
    answer = calculate(numbers, (numbers.length + 1) - new Set(numbers).size);
    
    return answer;
}

//solution(1, 3, 3)

 

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

function solution(num_list) {
  return Math.pow(num_list.reduce((a, b) => a + b), 2) > num_list.reduce((a, b) => a * b) ? 1: 0
}

solution([3, 4, 5, 2, 1])

 

Math.abs()

숫자의 절대값 리턴 (음수값을 넣으면 절대값이 나온다.)

 

팩토리얼 

1부터 어떤 양의 정수 n까지의 정수를 모두 곱한 것

4! = 1 * 2 * 3 * 4

'DAILY' 카테고리의 다른 글

5월 15일 알고리즘 연습문제  (0) 2023.05.15
5월 14일 알고리즘 연습  (0) 2023.05.14
5월 8일 알고리즘 연습문제  (0) 2023.05.09
5월 5일 알고리즘 연습문제  (0) 2023.05.06
등비수열, 등차수열 알고리즘  (0) 2023.02.03
'DAILY' 카테고리의 다른 글
  • 5월 14일 알고리즘 연습
  • 5월 8일 알고리즘 연습문제
  • 5월 5일 알고리즘 연습문제
  • 등비수열, 등차수열 알고리즘
ssund
ssund
  • ssund
    ssund의 기술블로그
    ssund
  • 전체
    오늘
    어제
    • 분류 전체보기 (73)
      • TECH (22)
      • NOTE (40)
      • DAILY (7)
      • javascript (1)
      • 알고리즘 (0)
  • 블로그 메뉴

    • 홈
    • TECH
    • NOTE
    • DAILY
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    타입스크립트
    theme-provider
    git배포
    JavaScript
    배열요소순서
    React
    d.ts
    Array.sort()
    slidesPerGroup
    reduxtoolkit
    TypeScript
    global-style
    커머스프로젝트
    reat-head
    웹브라우저구성
    styled-components
    call signatures
    함수와 메서드차이
    redux
    react state management
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
ssund
5월 4일 알고리즘 연습문제
상단으로

티스토리툴바