TIL(Today I Learned)

[Java/코딩테스트] 정수 내림차순으로 배치하기

yunseohhe 2024. 8. 2. 20:35

안녕하세요!

오늘은 되게 간단해보이는데 생각보다 간단하지 않았던 코딩테스트를 정리해보려고 합니다.

 

 

문제

 

이 문제를 보자마자 

  • 문자열 →  배열에 넣고 → 배열을 돌려가면서 값 비교? 할까??
  • 문자열 → substring으로 하나씩 값 비교? 

어떻게 풀어야하지? 위에처럼 생각하다가 구글링의 도움을 받고 밑에 방법처럼 풀어보았습니다.

도움이 많이 되서 정리해봅니다.

 

정답 코드

1. long 타입을 String 타입으로 변환해줍니다.

 :  118372 → "118372"

 

 

2. String타입으로 변환된 값을 split메서드를 활용하여 문자열을 잘라서 배열에 넣어줍니다.

 : "118372" ["1", "1", "8", "3", "7", "2"] 

 

  cf ) split() 메서드

  • 문자열을 매개변수(파라미터)로 받아서 해당 매개변수 기준으로 문자열을 잘라서 배열에 넣어주는 기능을 한다.
  • "" : 쌍따옴표 안에 특정문자를 기준으로 잘라줍니다. 공백도 하나의 문자로 취급!!

 

3. Arrays.sort()로 arr 배열을 오름차순으로 정렬해줍니다.

  :  ["1", "1", "2", "3", "7", "8"] 

 

 

4. StringBuilder 객체를 생성하여 append메서드, reverse메서드를 활용해줍니다.

  cf ) StringBuilder 객체는 다양한 메서드를 제공하는데 메서드 종류는 이 글 마지막 부분에 정리해놓겠습니다.

 

 

5. for문으로 돌면서 잘라줬던 문자열을 append메서드로 문자열을 합쳐줍니다.

  :  ["1", "1", "2", "3", "7", "8"]    ["112378"]

 

 

6. reverse메서드를 활용하여 문자열을 반전시켜줍니다.

  :  ["112378"]  →  ["873211"]

 

 

7. 문자열을 정수형 Long.valueOf()로 변환시켜주고 반환해줍니다.

  :  ["873211"]  →  (long) 873211

 

 


 

  cf ) StringBuilder 객체는 다양한 메서드를 제공합니다.

  • append메서드 : 문자열 추가

append메서드 예시

  • insert메서드 : 문자열 삽입

insert메서드 예시

  • delete메서드 : 문자열 삭제

delete메서드 예시

  • replace메서드 : 문자열 변경

replace메서드 예시

  • reverse메서드 : 문자열 반전

reverse메서드 예시

  • 길이와 용량 확인

length(), capacity() 메서드 예시

 


오늘의 요약

StringBuilder 객체는 다양한 메서드를 제공해줍니다.