[Java] reverse()

2024. 11. 13. 19:38·Java
 

 

reverse()?

reverse()는 주로 Collections 클래스나 StringBuilder 클래스를 사용하여 리스트나 문자열을 뒤집는 데 사용한다.

자바가 아닌 파이썬의 경우에는 주로 List 객체에서 주로 사용된다.

아래는 정렬 이후 reverse()를 사용해 내림차순 정렬을 한 코드의 결과 값이다. (개인적으로 코테 문제를 풀면서 처음으로 배운 부분을 스스로 적용한 부분이라 아직도 기억이 잘 나는중)

 

예시 결과

 


적용해보기 (reverse() x)

reverse() 메서드를 사용하지 않을 때 내림차순 정렬은 어떻게 해야 할까?

제일 접근 하기 쉬운 Bubble Sort로 내림차순에 대한 코드를 짠다면 다음과 같이 짤 수 있다

Bubble Sort를 사용하니 임의의 공간인 temp를 만들어줘 비교를 통해 자리를 바꿔준다.

입력을 {5, 1, 4, 2, 8, 3}을 주었기 때문에  정렬한 결과 [8, 5, 4, 3, 2, 1]순으로 내림차순으로 잘 정렬된 걸 볼 수 있다.

이 코드의 단점은 내림차순으로 만들기 위해 시간복잡도가 O(n^2)이라는 점과, 코드가 길어져 효율적이지 못하다는 점이다.

그럼 reverse()를 사용할 땐 어떨까?

 

 

 


 

적용해보기 (reverse() o)

reverse()를 활용해 내림차순 정렬을 할 때는 Bubble sort를 할 때보다 훨씬 더 간결한 코드로 정렬을 수행할 수 있다.

백준 1427번  SortInside 문제에 한 번 적용해보겠다.

문제는 다음과 같다

이 문제에 reverse()를 적용한다면 다음과 같이 코드를 짤 수 있다.

아까보다 훨씬 간결하기 때문에 코드에 대해 분석하기도 굉장히 쉽다

결과도 문제에서 요구한대로 내림차순 정렬이 잘 되는 것을 볼 수 있다.


 

후기

최근 스파르타에서 코드타카(코테 문제 푸는 시간) 시간에 문제를 풀다 보니 프로그래머스의 "정수 내림차순으로 배치하기"라는 문제를 풀다 이전에 학습했던 내용에 대해 다시 정리해보며(버블소트가 효율이 안좋다는 것도 다시 깨닫고) 글을 작성해보았다.

사실 프로젝트와 코테의 간극이 존재하기 때문에 실무에서 reverse()를 쓸 일이 많을 것 같지는 않지만 본인에게는 매우 유의미한 경험이기에,,

 

'Java' 카테고리의 다른 글

[Java] Volatile  (1) 2024.11.19
[Java] Thread Join  (2) 2024.11.12
[Java] Record  (4) 2024.11.11
[Java] What is NullPointException?  (0) 2024.09.24
[Java] Linear Search AND Binary Search  (2) 2024.09.03
'Java' 카테고리의 다른 글
  • [Java] Volatile
  • [Java] Thread Join
  • [Java] Record
  • [Java] What is NullPointException?
dev-heesxxung
dev-heesxxung
  • dev-heesxxung
    발악하는 비전공자 여우
    dev-heesxxung
  • 전체
    오늘
    어제
    • 분류 전체보기 (16)
      • Java (7)
      • Spring (1)
      • 밑시딥 (1)
      • Thesis (5)
      • AI (1)
      • Sparta[심화 2기] (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    컴퓨터비전
    Spring
    어텐션기법
    java
    conjunctivitis
    의료 영상 분석
    CS
    관심 영역 기반
    템플릿 매칭(template matching)
    Thread
    인식속도(recognition speed)
    특징점 추출(feature detection)
    실시간 객체인식(real-time object recognition)
    master student
    ai
    NullPointException
    영상처리(image processing)
    Coding
    Computer Vision
    programming
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
dev-heesxxung
[Java] reverse()
상단으로

티스토리툴바