Algorithm-lecture-01

알고리즘 오류가 나는 이유

피보나치 수

  • overflow , 자료형의 크기가 제한
  • n=90일경우, 자료형 크기에 대해 생각을 해봐야한다
  • 파이썬은 자료형 걱정안해도 됨(정수 크기 제한 없음) 자바와 C는 걱정해야한다
  • C++은 오버플로의 행동이 정의 되어 있지 않음 / Java는 행동이 정의 되어 있음

단어공부 (1157) ,퇴사 (14501)

  • .length() 모두 다(Java,C++,Python) 시간이 O(1)
  • 같은 값을 여러번 호출하는건 불 필요하다
  • 시간초과 : 중복계산
  • 메모리초과 : 다 저장 (불필요한거 저장)

시간초과

  • Java에서 String의 += 연산은 O(n^2) 이다
    • 새로운 객체를 만들어야 하기 때문이다
  • Java는 StringBuilder나 BufferedWriter를 사용한다
  • dp나 소수문제에 test case에 있을 경우 먼저 값을 미리 구해놓고 해당하는 n의 값을 출력하기

런타임 에러

  • 테스트할 때 경계값 꼭 넣어보기
    • 음수인지 아닌지도 파악해보기

자바의 장점

  • 초기화가 잘 되어있다? ㅎㅎ
  • C++은 초기화 해줘야한다

그냥 적기 / 디버깅 팁

  • 투포인터는 모두 다 양수일 경우만 사용할 수 있다
  • test case는 초기화가 핵심
  • test case의 순서만 바뀌어서 해보면 좋은 디버깅 방법
  • 복사 Arrays.copy /// System.arraycopy // .clone 사용
  • Arrays.sort()하기 전에 내부에서 안섞어준다 그러므로 따로 수열을 섞어줘야한다 (https:/blog.kyouko.moe/29)
  • 자료형에 담을 수 없는 정수를 입력받는 경우 런타임에러가 발생하기도 한다

QnA

  • 요즘 IT 기업 코딩테스트 트렌드 => 요즘은 구현 ~~
  • 어떻게 구현할까? -> 어떻게 저장할까?
  • 모르면 배워서 풀자 !!!!!!
  • 시간복잡도 …. 아 겁나 어렵네 ㅠㅠ 어떤과정을 갖는지
  • 정규표현식 좋다 … 공부하자

You might also enjoy