(TIL) 20210712

2021. 7. 12. 14:14TIL(Today I learned)

반응형

📕Facts(한 것)


  • 백준 문제 풀기
  • 스프링 복습하기
  • 운동하기

 

📕Feeling(느낀 점)


스프링으로 CRUD를 스스로 구현할 수 있게 되었다!!!

 

예전에는 이게 왜 그렇게 어려웠을까....

생각해보면 자바 문법에 대한 기본적인 이해도가 부족한 것이 컸고,

알려주는 코드를 깊게 생각하지 않고, 단순히 따라하려고만 해서 문제가 생겼었다.

 

이제는 @GetMapping 이 어떻게 동작하는지,

@Pathvariable 이 왜 필요한지 잘 알게 되었다.

(역시 삽질은 필수.)


 

백준에서 좌표 압축 문제를 풀었다.

내가 처음에 시도한 방법은 완전탐색으로 풀어서, 바로 시간초과가 발생했다.

 

두 번째로 시도한 방법은 vector에서 key값과 value 값을 비교하면서 정렬하는 방법이었는데,

실패했다.

 

결국 다른 사람은 어떻게 풀었는지 찾아보았고,

생각지도 못한 방법을 알게 되었다.

 

바로 unique와 lower_bound를 이용해서 푸는 방법이다.

 

template <class ForwardIterator>
  ForwardIterator unique (ForwardIterator first, ForwardIterator last)
{
  if (first==last) return last;

  ForwardIterator result = first;
  while (++first != last)
  {
    if (!(*result == *first))  // or: if (!pred(*result,*first)) for version (2)
      *(++result)=*first;
  }
  return ++result;
}

 

unique 함수의 동작 방식이다.

 

An iterator to the element that follows the last element not removed.
The range between first and this iterator includes all the elements in the sequence that were not considered duplicates.

 

unique 함수는 배열에서 중복되는 값을 배열 맨 뒤로 보내준다.

그렇기 때문에 중복을 제거하는데 매우매우 효과적이다!

 

또한 lower_bound를 통해서 처음 등장하는 값의 위치를 파악할 수 있는것도 유용했다!!

 

 

📕여담


얼른 층간소음 박살내고 싶다.

나는 우리 아파트 최고의 또라이가 되기로 결심했다.

반응형

'TIL(Today I learned)' 카테고리의 다른 글

(TIL) 20210714  (0) 2021.07.14
(TIL) 20210713  (0) 2021.07.13
(TIL) 20210711  (0) 2021.07.11
(TIL) 20210710  (0) 2021.07.11
(TIL) 20210709  (0) 2021.07.09