Algorithm/Study

[99클럽 코테 스터디] 📝 Day8. 정렬이란

ioh'sDeveloper 2024. 5. 27. 22:31
99클럽 코테 스터디 8일차 TIL + 정렬된 큐

 

📍오늘의 학습 키워드

  • 문자열 회전
  • 사전 순 정렬
  • Java substring 메서드
  • Java compareTo 메서드
  • Java Arrays.sort 메서드

📝 공부한 내용 본인의 언어로 정리하기

오늘은 문자열을 주어진 조건에 따라 회전시키고, 사전 순으로 가장 작은 문자열을 찾는 방법을 공부했다. **k**값에 따라 두 가지 접근법을 사용했다. k가 1일 때는 문자열을 여러 번 회전시켜 가능한 모든 회전된 문자열 중 가장 작은 것을 찾았다. k가 2 이상일 때는 문자열의 모든 문자를 정렬하여 사전 순으로 가장 작은 문자열을 구했다. 이를 위해 substring, compareTo, Arrays.sort 메서드를 사용했다.

 

📖 오늘의 회고

📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지

문제를 처음 접했을 때, 문자열을 회전시키고 사전 순으로 정렬하는 방법을 이해하는 데 어려움을 겪었다. substringcompareTo 메서드의 사용법이 헷갈렸고, Arrays.sort 메서드를 사용하여 문자열을 정렬하는 방법이 낯설었다.

 

🤔 어떻게 해결했는지

🔖 문제 해결 링크 (https://develop-tracking.tistory.com/59)

먼저, substring 메서드를 사용하여 문자열을 회전시키는 방법을 이해했다. 이를 통해 문자열의 일부를 추출하고, 두 부분을 결합하여 새로운 회전된 문자열을 생성할 수 있었다. 그런 다음, compareTo 메서드를 사용하여 두 문자열을 비교하고 사전 순으로 작은 문자열을 찾는 방법을 익혔다. Arrays.sort 메서드를 사용하여 문자열을 문자 배열로 변환한 후 정렬하고 다시 문자열로 변환하는 과정도 학습했다.

 

🤓 무엇을 새롭게 알았는지

  • substring 메서드를 사용하여 문자열의 일부를 쉽게 추출할 수 있다는 것.
  • compareTo 메서드를 사용하여 두 문자열을 사전 순으로 비교할 수 있다는 것.
  • Arrays.sort 메서드를 사용하여 문자 배열을 사전 순으로 정렬하고 이를 다시 문자열로 변환할 수 있다는 것.
  • 시간 복잡도:
    • k == 1: O(n^2)
    • k >= 2: O(n log n)
  • 공간 복잡도:
    • k == 1: O(n)
    • k >= 2: O(n)

⏳ 내일 학습할 것은 무엇인지

  • 문자열 처리와 관련된 더 복잡한 알고리즘 문제를 풀어보기.
  • Java의 다른 문자열 메서드들 (indexOf, lastIndexOf, replace, split 등)을 학습하기.
  • 알고리즘 문제를 해결하는 다양한 접근법을 익히기 위해 다른 문제들도 풀어보기.