181002 TIL Lec2 & 알고리즘 스터디

» 1막, TIL (Today I Learned), 코드스쿼드

알고리즘 스터디

  • Big(O)표현법
    이진탐색과 단순탐색의 실행시간이 같은 비율로 증가하지 않기 때문에 알고리즘의 실행시간이 얼마나 걸리는지만 고려할 것이 아니라 리스트의 크기가 증가할 때 어떻게 증가하는 지 파악하기 위해 빅오표기법 사용

    알고리즘이 동작하기 위해 필요한 연산횟수이며 최악의 실행시간을 나타냄
    image 자료 출처

    빠름 «««««««««««« 느림
    O(log n) < O(n) < O(n log n) < O(n^2) < O(n!)
    이진탐색 < 단순탐색 < 퀵 정렬 < 선택정렬 < 외판원 문제

  • 다이나믹 프로그래밍 & 피보나치
    하위의 작은 문제들을 풀고 이를 이용해서 더 큰 문제를 풀어나가는 방법
    유튜브 강의가 이해하는 데 많은 도움이 되었다.

    What Is Dynamic Programming and How To Use It image

  • 소수찾기 알고리즘 문제
    프로그래머스 문제

    각자 30분씩 풀어보고 안되면 같이 풀어보기로 했는데 아무도 못 품..ㅎ..
    난 절대 못 풀거라 생각했는데 풀긴 풀었다!! n^n으로 풀어서 효율성에서 떨어짐..
    둘이서 짝코딩을 하면서 풀어봤는데 그래도 못 품..ㅎ…
    –> 검색찬스를 썼다.

      function sieve(limit) {
        
      var bools = [];
      var primes = [];
    
      for (var i = 1; i < limit; i++) { bools.push(true); } 
    
      for (var i = 2; i < limit; i++) {
          if (bools[i-2]) {
          for (var j = i*2; j <= limit; j += i) {
              bools[j-2] = false;    
          }
          }
      }
        
      for (var p = 0; p < bools.length; p++) {
          if (bools[p]) { primes.push(p+2); }
      }
        
      return primes;
    
      } 
    
      sieve(30);
    

    자료 출처

학점계산기 step 3

  • 리팩토링 위주로 수정했다. arrow function으로 다 수정하고, reduce사용해보고… image
  • 그리고 머지가 되었다 ! (생각보다 빨리 머지되서 당황)

알고리즘 문제

  • 모의고사 문제도 안 풀리고… 이번 알고리즘 문제 넘 어려워서 많이 못 품…

일기

  • 이번 주엔 추석에 잃어버린 리듬 되찾는 게 목표!
  • 월,화 운동가서 너무 좋았당.



10/3(Wed) 개천절 To-Do

  1. 알고리즘 1문제
  2. 용어 정리
  3. CS50?