본문 바로가기

항해99_10기/105일의 TIL & WIL

[2021121] 알고리즘 문제풀이

오늘은 문제 13번 ~ 21번까지의 문제를 풀었다.

 

아래는 오늘 푼 문제 포스팅 링크다.

 

 

오늘 배운 것들 

  • parseInt(val, radix), toStirng(radix)를 통해 숫자의 진법을 변환해보았다
  • filter(). map(), forEach(), search() 함수 등을 이용해 for와 if 문을 통해 길게 짠 코드를 짧게 줄이는데 능숙해 지는 것 같다
  •  new Set()을 사용해 배열에서 중복 값을 제거하는 방법을 배웠다
  • key-value쌍 오브젝트를 만들때, key 값에 숫자를 입력해도 자동으로 string으로 변환한다
  • 모의고사 문제에서 최고 값을 찾는데 간편하게 사용할 수 있는 Math.max()함수를 잘 떠올리지 못했는데, 앞으로는 잘 할것 같다ㅋㅋ
  • sort(compareFn) 메소드의 경우, compareFn을 입력하지 않으면 기본 UTF-16 code unit으로 평가하는데, 숫자를 비교하는 경우 의도치 않은 결과를 얻을 수 있으나, 알파벳의 경우, 순서대로 들어온다.
    • 자세한 내용은 wikipedia 참고
    • sort()에서 compareFn을 이용해 문자열의 내림차순 정렬도 구현해보았다.

 

  • 소수 만들기 문제는 거의 3시간 넘게 걸려 푼 것 같다. 별의 별 짓을 다 해봤는데, 덕분에 재귀함수 연습을 해볼 수 있었다.(재귀함수로는 시간초과로 통과하지 못했다) 
    • 이 문제를 풀면서 느꼈던 점은, 과도하게 엄밀한 프로그래밍은 사족이라는 것이다. 실제 문제를 해결하면서 추후 코드 개선에 필요한 투입 시간을 최소화 할 수 있는 단계까지만 구현하는 것이 핵심인 것 같다.