그저 내가 되었고

☕️Java:: 알고리즘 문제에서 자주 쓰이는 함수(계속 업데이트중) 본문

개발/Java

☕️Java:: 알고리즘 문제에서 자주 쓰이는 함수(계속 업데이트중)

hyuunii 2023. 8. 16. 19:57

목차

1. 배열 오름차순 정렬하기

2. 배열 내림차순 정렬하기

3. 배열의 최대값 구하기

4. 배열의 최소값 구하기

5. 원하는 포맷으로 날짜 표현하기

6. 원하는 포맷으로 시간 표현하기

7. 원하는 형식으로 시간과 날짜 동시에 표현하기

 

 

 

 

1. 배열 오름차순 정렬하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.Arrays;
 
public class Sort {
    public static void main(String[] args)  {    
        int[] array = {583264121599};
        
        Arrays.sort(array);
        
        for(int i = 0; i < array.length; i++)
        {
            System.out.print("[" + array[i] + "] ");
        }
    }
}
cs

 

 

 

 

2. 배열 내림차순 정렬하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.Arrays;
import java.util.Collections;
 
public class Sort {
    public static void main(String[] args)  {    
        Integer[] array = {583264121599};
        
        Arrays.sort(array, Collections.reverseOrder());
        
        for(int i = 0; i < array.length; i++)
        {
            System.out.print("[" + array[i] + "] ");
        }
    }
}
cs

내림차순 정렬은 int 아니고 Integer로 변수 선언 필요

 

 

 

 

* 아래의 배열의 최대값, 최소값 구하기에서 사용되는 for each 문법

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int[] arr = {01234};
 
for (int i = 0; i < 5; i++) { 
    System.out.println(arr[i]); // 0 1 2 3 4 출력
}
 
 
 
⬇︎⬇︎⬇︎⬇︎⬇︎위의 for문을 for each 문으로⬇︎⬇︎⬇︎⬇︎⬇︎
 
 
int[] arr = {01234};
 
for (int i : arr) { 
    System.out.println(arr[i]); // 0 1 2 3 4 출력
}
cs 

<<for each문의 장점>>

➮가변하는 복잡한 배열이나 리스트의 크기를 일일이 구할 필요가 없음.

이중 for문이나 복잡한 반복문에 적합하며

인덱스를 생성해 접근하는 단순 for문 보다 수행속도가 조금 더 빠름.

무엇보다도 코드가 짧고 가독성이 높음.

 

 

3. 배열의 최대값 구하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Max {
    public static void main(String[] args) {
        int[] arr = { 32151 };
 
        // 최대값 초기값 세팅
        int max = arr[0];
 
        // 최대값 구하기
        for (int num : arr) {
            if (num > max) {
                max = num;
            }
        }
 
        // 최대값 출력
        System.out.println(max);
    }
}
cs

 

 

 

4. 배열의 최소값 구하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Min {
    public static void main(String[] args) {
        int[] arr = { 32151 };
 
        // 최소값 초기값 세팅
        int min = arr[0];
 
        // 최소값 구하기
        for (int num : arr) {
            if (num < min) {
                min = num;
            }
        }
 
        // 최소값 출력
        System.out.println(min);
    }
}
cs

 

 

 

 

5. 원하는 포맷으로 날짜 표현하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
 
public class CurrentDateTime {
    public static void main(String[] args) {
        
        // 현재 날짜 구하기
        LocalDate now = LocalDate.now();
 
        // 포맷 정의
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
 
        // 포맷 적용
        String formatedNow = now.format(formatter);
 
        // 결과 출력
        System.out.println(formatedNow);  // 2021/06/17
 
 
 
 
 
        // 연도, 월(문자열, 숫자), 일, 일(year 기준), 요일(문자열, 숫자)
        int year = now.getYear();
        String month = now.getMonth().toString();
        int monthValue = now.getMonthValue();
        int dayOfMonth = now.getDayOfMonth();
        int dayOfYear = now.getDayOfYear();
        String dayOfWeek = now.getDayOfWeek().toString();
        int dayOfWeekValue = now.getDayOfWeek().getValue();
 
        // 결과 출력
        System.out.println(now); // 2021-06-17
        System.out.println(year); // 2021
        System.out.println(month + "(" + monthValue + ")"); // JUNE(6)
        System.out.println(dayOfMonth); // 17
        System.out.println(dayOfYear); // 168
        System.out.println(dayOfWeek + "(" + dayOfWeekValue + ")"); // THURSDAY(4)
 
    }
}
cs

 

 

 

 

6. 원하는 포맷으로 시간 표현하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
 
public class CurrentDateTime {
    public static void main(String[] args) {
 
        // 현재 시간
        LocalTime now = LocalTime.now();
 
        // 현재시간 출력
        System.out.println(now);  // 06:20:57.008731300
 
        // 포맷 정의하기
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH시 mm분 ss초");
 
        // 포맷 적용하기
        String formatedNow = now.format(formatter);
 
        // 포맷 적용된 현재 시간 출력
        System.out.println(formatedNow);  // 06시 20분 57초
 
 
 
 
         // 현재 시간
        LocalTime now = LocalTime.now();
 
        // 현재시간 출력
        System.out.println(now); // 06:25:59.985969400
 
        // 시, 분, 초 구하기
        int hour = now.getHour();
        int minute = now.getMinute();
        int second = now.getSecond();
 
        // 시, 분, 초 출력
        System.out.println(hour);  // 6
        System.out.println(minute);  // 25
        System.out.println(second);  // 59
    }
}
cs

 

 

 

 

7. 원하는 형식으로 시간과 날짜 동시에 표현하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
 
public class CurrentDateTime {
    public static void main(String[] args) {
 
        // 현재 시간
        LocalTime now = LocalTime.now();
 
        // 현재시간 출력
        System.out.println(now);  // 06:20:57.008731300
 
          // 포맷팅
        String formatedNow = now.format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 HH시 mm분 ss초"));
 
        // 포맷팅 현재 날짜/시간 출력
        System.out.println(formatedNow);  // 2021년 06월 17일 06시 43분 21초
    }
}
cs