TIL 2022-03-12-토

그린·2022년 3월 12일
0

TIL

목록 보기
19/47

1. 오늘 학습한 내용

백준 카운팅 정렬 문제 10989번

2. 알게 된 내용

지난번에 읽었던 카운팅 정렬의 원리에 대한 글을 보면서 원리는 참고하되 스스로 코드를 구현하도록 했다.
원리 참고 글 : 자바 [JAVA] - 카운팅 정렬 (Counting Sort / 계수 정렬)

  • result 배열에 값을 넣은 후, counting 배열의 해당 값을 하나씩 감소시켜야 한다는 점 잊지 말자!

다 풀고 나서 다른 분의 코드도 참고해보았는데 이 분의 풀이 2에서 카운팅 정렬을 이용하셨는데, 나는 변수/배열들을 새로 만들어서 진행한 경우가 많았는데 이 분의 풀이에서는 변수/배열들의 생성을 최소화하면서 진행하셨고 이 분의 코드를 돌려보니까 내가 한 것보다 더 빠르고 메모리도 적게 이용한 것을 알 수 있었다. 변수/배열 생성을 줄일 수 있으면 줄이는 게 좋아보인다!

코드 참고 글 [백준] 10989번 : 수 정렬하기 3 - JAVA [자바]

3. 느낀 점

카운팅 정렬이 조금 낯설었지만 원리를 많이 보고 직접 그려보기도 하고 직접 구현해보니까 확실히 이해가 잘 되었다. 카운팅 정렬 방식이 시간복잡도가 O(n)이여서 매우 효율적이라고 하던데 (다만 수의 범위가 너무 큰 경우는 메모리 사용량이 크다고 한다) 카운팅 정렬 잘 기억하고 앞으로도 잘 이용할 수 있게 해보아야겠다!

profile
기록하자

0개의 댓글

Powered by GraphCDN, the GraphQL CDN