단어정렬

만돌이·2025년 8월 8일

algorithm

목록 보기
8/11

📆 Today I Learned

😵 어려웠던 점

정렬을 하는 알고리즘이 너무 많아 그 중에 어떤 것을 선택해야 할지 어려웠다.
여러 가지 방법이 떠오르지 않아, 그나마 기억에 남아 있던 버블 정렬을 사용하여 적용했다.
하지만 선택 과정에서 시간 복잡도나 효율성에 대한 고려가 부족했던 점이 아쉬웠다.


🧪 내가 시도한 점

중복을 제거하기 위해 Set 자료형을 사용하고,
그 후 버블 정렬 방식으로 이중 for문을 돌며 정렬을 시도했다.
기본적인 구조와 알고리즘 흐름을 직접 구현하면서 정렬 동작을 확인했다.


❌ 잘못한 점

정렬 알고리즘의 시간 복잡도를 충분히 고려하지 못했다.
버블 정렬은 O(n^2)의 느린 알고리즘인데, 문제 조건이나 입력 범위를 생각하지 않고 그대로 적용해버렸다.
또한 Java의 Collections.sort()와 같은 기본 제공 정렬 유틸을 활용하지 못한 것도 아쉬운 부분이었다.


📚 배운 점

Java 언어에서 제공하는 유틸리티 클래스와 메서드들을 적극 활용하는 것이 문제 해결에 훨씬 효율적이라는 것을 느꼈다.
알고리즘 문제라고 해서 반드시 원시적인 구현으로만 풀어야 한다는 고정관념에서 벗어날 필요가 있다.
언어에서 제공하는 자료형과 내장 함수도 결국 알고리즘의 일환이라는 점을 다시 한 번 깨달았다.
앞으로는 무작정 구현하기보다는 성능과 활용성까지 고려해서 도구를 선택해야겠다!

0개의 댓글