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
 
public class Main {
    
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        int[] list = new int[9];;
        for(int i = 0; i < 9; i++) {
            list[i] = Integer.parseInt(br.readLine());
        }
        
        int max = -100;
        int cnt = 0;
        for(int i = 0; i < 9; i++) {
            if(max < list[i]) {
                max = list[i];
                cnt = i + 1;
            }
        }
        
        bw.write(max + "\n" + cnt);
        bw.flush();
        bw.close();
        
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 
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
 
public class Main {
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        int num = Integer.parseInt(br.readLine());
        int arr[] = new int[num];
        StringTokenizer st = new StringTokenizer(br.readLine());
        int max = -1000000;
        int min = 1000000;
        
        for(int i = 0; i < num; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
            if(min > arr[i]) min = arr[i];
            if(max < arr[i]) max = arr[i];
        }
        bw.write(min + " " + max);
        bw.flush();
        
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

StringTokenizer의 nextToken메소드를 이용해 값을 배열에 담고 최소값 그리고 최대값을 저장하는 포문

 

 

1. 10952

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
public class Main {
    
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        String[] nums = null;
        do {
            nums = br.readLine().split(" ");
            if(nums[0].equals("0"&& nums[1].equals("0"))break;
            bw.write((int)(Integer.parseInt(nums[0]) + Integer.parseInt(nums[1])) + "\n");
            
        } while(true);
        
        bw.flush();
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 


2. 10951

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.Scanner;
 
public class ScannerMain {
 
    public static void main(String[] args) {
        Scanner scan =  new Scanner(System.in);
        
        while(scan.hasNextInt()) {
            int firstNum = scan.nextInt();
            int secondNum = scan.nextInt();
            System.out.println(firstNum + secondNum);
        }
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

BufferedReader를 사용한 end of file구현을 백준에선 계속 런타임에러로 인식이되서 포기... 나중에 수정예정

edit: 해결했습니다! while문에서 만약 br.readLine를 사용하면 readLine이 while문 부터 작동을해서 런타임에러로 인식을 했습니다. 그래서 readLine를 while문에서 한번적어주면 null빈칸이 올때까지 계속 실행합니다. eof

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
 
public class Main {
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        String temp = " ";
        while((temp = br.readLine())!= null) {
            String[] numbers = temp.split(" ");
            try {
                int firstNum = Integer.parseInt(numbers[0]);
                int secondNum = Integer.parseInt(numbers[1]);
                int result = firstNum + secondNum;
                bw.write(result + "\n");
                bw.flush();
            } catch (Exception e) {
                continue;
            }
        }
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 


3. 1110

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
 
public class Main {
    
    public static int result(int number) {
        
        int result = number;
        int cnt = 0;
        do {
            int a = result % 10;
            int b = result / 10;
            result = (a * 10+ (a + b) % 10;
            cnt ++;
        }while(number != result);
        
        return cnt;
    }
    
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        int number = Integer.parseInt(br.readLine());
        bw.write(String.valueOf(result(number)));
        bw.flush();
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

이넘, 상수, 메소드들은 메소드영역에 존재

객체는 heap, 참조안되면 garbage collector와서 지움

stack은 객체의 변수, 기본 변수

'ETC' 카테고리의 다른 글

Comparable vs Comparator  (0) 2019.12.01
Algorithm time complexity  (2) 2019.12.01
various query  (0) 2019.11.14
Various html  (0) 2019.11.14
Settings  (0) 2019.11.14

1. 2739

import java.util.Scanner;



public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		int number = scan.nextInt();

		for(int i = 1; i < 10; i++) {

			System.out.println(number + " * " + i + " = " + number * i);

		}

	}

}


2. 10950

import java.util.ArrayList;

import java.util.Scanner;



public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		int caseNum = scan.nextInt();

		int first = 0;

		int second = 0;

		ArrayList<Integer> firstNums = new ArrayList<Integer>();

		ArrayList<Integer> secondNums = new ArrayList<Integer>();

		

		for(int i = 0; i < caseNum; i++) {

			first = scan.nextInt();

			second = scan.nextInt();

			firstNums.add(first);

			secondNums.add(second);

		}

		for(int i = 0; i < caseNum; i++) {

			System.out.println(firstNums.get(i) + secondNums.get(i));

		}

	}

}


3. 8393

import java.util.Scanner;



public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		int number = scan.nextInt();

		int result = 0;

		for(int i = 1; i <= number; i++) {

			result += i;

		}

		System.out.println(result);

	}

}


4. 15552'

알고리즘을 하면서 I/O 개념을 확실히 이해할 수 있었던 문제였다. 

간단하게 Scanner = BufferedReader, sysout = BufferedWriter

자바 데이터 타입에 더 신경을 써야되지만 효율은 데이터가 클수록 buffered가 좋다는게 속도에서 나타난네요

이제 부터 웬만하면 buffered을 사용해서 알고리즘의 효율을 신경쓰겠습니다

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;



public class Main {

	public static void main(String[] args) throws IOException{

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		int caseNum = Integer.parseInt(br.readLine());

		for(int i = 0; i < caseNum; i++) {

			String[] temp = br.readLine().split(" ");

			bw.write(Integer.parseInt(temp[0]) + Integer.parseInt(temp[1]) + "\n");

		}

		bw.flush();

	}

	//understanding input and output efficiency is the main point

	//and scanner = bufferedreader and sysout = bufferedwriter

	

    //BufferedReader is a bit faster as compared

	//to scanner because scanner does parsing of input 

	//data and BufferedReader simply reads sequence of characters.

}


5. 2741

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;



public class Main {



	public static void main(String[] args) throws Exception {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		

		int number = Integer.parseInt(br.readLine());

		for(int i = 1; i <= number; i++) {

			bw.write(String.valueOf(i) + "\n");

		}

		bw.flush();

	}

}

첫번째게 buffered사용한거고 밑에게 기본 스캐너... 시간이 3배이상 단축!


6. 2742

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;



public class Main {



	public static void main(String[] args) throws Exception{

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		

		int n = Integer.parseInt(br.readLine());

		for(int i = n; i > 0; i--) {

			bw.write(i + "\n");

		}

		bw.flush();

	}

}


7. 11021

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;



public class Main {

	

	public static void main(String[] args) throws Exception{

		//takes 72ms, about almost 1.5faster than scanner and sysout

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		

		int caseNum = Integer.parseInt(br.readLine());

		for(int i = 1; i <= caseNum; i++) {

			String[] temp = br.readLine().split(" ");

			bw.write("Case #" + i + ": "+ (Integer.parseInt(temp[0]) + Integer.parseInt(temp[1])) + "\n");

		}

		bw.flush();

		

//		Scanner scan = new Scanner(System.in);

//		int caseNum = scan.nextInt();

//		

//		for(int i = 1; i <= caseNum; i++) {

//			int first = scan.nextInt();

//			int second = scan.nextInt();

//			

//			System.out.println("Case #" + i + ": " + (first + second));

//			

//		}

		//takes 128ms

	}

}


8. 11022

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;



public class Main {

	public static void main(String[] args) throws Exception{

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(System.out));

		

		int caseNum = Integer.parseInt(br.readLine());

		for(int i = 1; i <= caseNum; i++) {

			String[] temp = br.readLine().split(" ");

			wr.write("Case #" + i + ": " + temp[0] + " + " + temp[1] + " = " + (Integer.parseInt(temp[0]) + Integer.parseInt(temp[1])) + "\n");

		}

		wr.flush();

	}

}


9. 2438

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;



public class Main {

	public static void main(String[] args) throws Exception{

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(System.out));

		

		int caseNum = Integer.parseInt(br.readLine());

		

		for(int i = 0; i < caseNum; i++) {

			for(int j = 0; j <= i; j++) {

				wr.write("*");

			}

			wr.write("\n");

		}

		wr.flush();

	}

}


10. 2439

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;



public class Main {

	public static void main(String[] args) throws Exception{

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		

		int caseNum = Integer.parseInt(br.readLine());

		

		for(int i = 0; i < caseNum; i++) {

			for(int j = i; j < caseNum - 1; j++ ) {

				bw.write(" ");

			}

			for(int j = 0; j <= i; j++) {

				bw.write("*");

			}

			bw.write("\n");

		}

		bw.flush();

		

	}

}


11. 10871

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;



public class Main {

	public static void main(String[] args) throws Exception{

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

	

		String[] amountNcompare = br.readLine().split(" ");

		String[] numberList = br.readLine().split(" ");

		for(int i = 0; i < Integer.parseInt(amountNcompare[0]); i++) {

			if(Integer.parseInt(amountNcompare[1]) > Integer.parseInt(numberList[i])) {

				bw.write(numberList[i] + " ");

			}

		}

		bw.flush();

	}

}

 

1. 1330

import java.util.Scanner;



public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		int first = scan.nextInt();

		int second = scan.nextInt();

		if(first > second) System.out.println(">");

		else if(first < second) System.out.println("<");

		else System.out.println("==");

	}

}



2. 9498

import java.util.Scanner;



public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		int grade = scan.nextInt();

		if(grade >= 90 && grade <= 100) System.out.println("A");

		else if(grade >= 80 && grade <= 89) System.out.println("B");

		else if(grade >= 70 && grade <= 79) System.out.println("C");

		else if(grade >= 60 && grade <= 69) System.out.println("D");

		else System.out.println("F");

	}

}



3. 2753

import java.util.Scanner;



public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		int year = scan.nextInt();

		if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)

			System.out.println("1");

		else System.out.println("0");

	}

}



4. 2884

import java.util.Scanner;



public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		

		int h = scan.nextInt();

		int m = scan.nextInt();

		if(m < 45) {

			m += 60;

			h--;

			if(h < 0) h = 23;

		}

		System.out.println(h);

		System.out.println( m - 45);

	}

}



5. 10817

import java.util.ArrayList;

import java.util.Scanner;



public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		int a = scan.nextInt();

		int b = scan.nextInt();

		int c = scan.nextInt();

		int temp = 0;

		ArrayList<Integer> testing = new ArrayList<Integer>();

		testing.add(a);

		testing.add(b);

		testing.add(c);

		for(int i = 0; i < testing.size() - 1; i++) {

			for(int j = 1; j <testing.size(); j++) {

				if(testing.get(i) > testing.get(j)) {

					temp = testing.get(j);

					testing.set(j, testing.get(i));

					testing.set(i, temp);

				}

			}

		}

		System.out.println(testing.get(1));

	}

}

 

백준 시작! 유뷰브에서 현재까지 나온 알고리즘은 다 풀었으니까 이제 백준 알고리즘을 단계별로 풀어가겠습니다.

 

1. 2557 

public class Main {

	

	public static void main(String[] args) {

		System.out.println("Hello World!");

	}

}

 

2. 10718

public class Main {

	

	public static void main(String[] args) {

		System.out.println("강한친구 대한육군");

		System.out.println("강한친구 대한육군");

	}

}

 

3. 10171

public class Main {

	public static void main(String[] args) {

		System.out.println("\\    /\\");

		System.out.println(" )  ( ')");

		System.out.println("(  /  )");

		System.out.println(" \\(__)|");

	}

}


4. 10172

public class Main {

	public static void main(String[] args) {

		System.out.println("|\\_/|");

		System.out.println("|q p|   /}");

		System.out.println("( 0 )\"\"\"\\");

		System.out.println("|\"^\"'    |");

		System.out.println("||_/=\\\\__|");

	}

}


5. 7287

public class Main {

	public static void main(String[] args) {

		System.out.println("19");

		System.out.println("tonyzorz");

	}

}


6. 1000

import java.util.Scanner;



public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		int first = scan.nextInt();

		int second = scan.nextInt();

		System.out.println(first + second);

	}

}


7. 1001

import java.util.Scanner;



public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		int first = scan.nextInt();

		int second = scan.nextInt();

		System.out.println(first - second);

	}

}


8. 10998

import java.util.Scanner;



public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		int first = scan.nextInt();

		int second = scan.nextInt();

		System.out.println(first * second);

	}

}


9. 1008

import java.util.Scanner;



public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		double first = scan.nextInt();

		double second = scan.nextInt();

		System.out.println(first/second);

	}

}


10. 10869

import java.util.Scanner;



public class Main {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);

        int first = scan.nextInt();

        int second = scan.nextInt();

        System.out.println(first + second);

        System.out.println(first - second);

        System.out.println(first * second);

        System.out.println(first / second);

        System.out.println(first % second);

    }

}

 

11. 10430

import java.util.Scanner;

 

public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		int first = scan.nextInt();

		int second = scan.nextInt();

		int third = scan.nextInt();

 

		System.out.println((first+second)%third);

		System.out.println((first%third+second%third)%third);

		System.out.println((first*second)%third);

		System.out.println((first%third*second%third)%third);

	}

}


12. 2588

import java.util.Scanner;



public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		int first = scan.nextInt();

		int second = scan.nextInt();

		

		int a = first * (second - second/10 * 10);

		int b = first * (second/10 % 10);

		int c = first * (second/10/10);

		int d = a + (b * 10) + (c * 100);

		

		System.out.println(a);

		System.out.println(b);

		System.out.println(c);

		System.out.println(d);

	}

}

 

받은 코테 문제 + 풀이

 

1. 2차원 배열 반시계/시계

[2차원 배열]

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

 

[출력 결과]

2

3

4

8

1

10

6

12

5

11

7

16

9

13

14

15

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package linuxware1;
 
public class MainClass {
 
    public static void arrayTurn(int rowSize, int colSize, int[][] arr) {
        
        int row = 0;
        int col = 0;
        int currentValue, previousValue;
        //false = 반시계방향
        //true = 시계방향
        boolean rotationDirection = false;
        
        while(row < rowSize && col < colSize) {
            
            if(row + 1 >= rowSize || col + 1 >= colSize) break;
            
            if(!rotationDirection) {
                
                previousValue = arr[row][col + 1];
                
                // ↓ 
                for(int i = row; i < rowSize; i++) {
                    currentValue = arr[i][col];
                    arr[i][col] = previousValue;
                    previousValue = currentValue;
                }
                rowSize--;
                
                // →
                for(int i = col; i < colSize - 1; i++) {
                    currentValue = arr[rowSize][i + 1];
                    arr[rowSize][i + 1= previousValue;
                    previousValue = currentValue;
                }
                colSize--;
                
                // ↑ 
                for(int i = rowSize; i > row; i--) {
                    currentValue = arr[i - 1][colSize];
                    arr[i - 1][colSize] = previousValue;
                    previousValue = currentValue;
                }
                col++;
                
                // ← 
                for(int i = colSize - 1; i >= col; i--) {
                    currentValue = arr[row][i];
                    arr[row][i] = previousValue;
                    previousValue = currentValue;
                }
                row++;
            } else {
                previousValue = arr[row + 1][col];
                
                // →
                for(int i = col; i < colSize; i++) {
                    currentValue = arr[row][i];
                    arr[row][i] = previousValue;
                    previousValue = currentValue;
                }
                row++;
                
                // ↓
                for(int i = row; i < rowSize; i++) {
                    currentValue = arr[i][colSize - 1];
                    arr[i][colSize - 1= previousValue;
                    previousValue = currentValue;
                }
                colSize--;
                
                // ← 
                for(int i = colSize - 1; i >= col; i--) {
                    currentValue = arr[rowSize - 1][i];
                    arr[rowSize - 1][i] = previousValue;
                    previousValue = currentValue;
                }
                rowSize --;
                
                // ↑
                for(int i = rowSize; i > row; i--) {
                    currentValue = arr[i - 1][col];
                    arr[i - 1][col] = previousValue;
                    previousValue = currentValue;
                }
                col++;
            }
            rotationDirection = !rotationDirection;
        }
        
        //print
        for(int i = 0; i < arr.length; i++) {
            for(int j = 0; j < arr.length;  j++) {
                System.out.print(arr[i][j] + "\t");
            }
            System.out.println();
        }
    }
    
    public static void main(String[] args) {
        int[][] arr = 
            {{1,2,3,4},
            {5,6,7,8},
            {9,10,11,12},
            {13,14,15,16}};
        
        int[][] arr2 = 
            {{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}};
        
        
        for(int i = 0; i < arr.length; i++) {
            for(int j = 0; j < arr.length;  j++) {
                System.out.print(arr[i][j] + "\t");
            }
            System.out.println();
        }
        System.out.println();
        arrayTurn(arr.length, arr.length, arr);
        
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

2. 리스트 순서대로

개발실에 근무하는 홍길동은 다음의 순서대로 버그 수정을 의뢰받았다.

 

# 작업 리스트

우선순위 / 소요시간 / 작업내용

 

낮음, 1, A.로그인 화면 오타 수정

긴급, 3, B.OTP 사용자 로그인 안됨

보통, 1, C.권한 안내 문구 수정

낮음, 2, D.로딩중 표시 아이콘 변경

긴급, 3, E.메일의 본문이 표시되지 않는 문제

보통, 1, F.첨부파일 사이즈 표시 오류 수정

긴급, 2, G.메일 전송시 첨부파일 누락됨

보통, 3, H.1:1 문의 기능 구현

낮음, 1, I.제품 로고 변경

보통, 3, J.안읽음 카운트 오류 문제 

낮음, 1, K.폰트 색상 변경 

긴급, 2, L.전체 메일함 동기화 안되는 문제

 

홍길동이 처리해야할 작업내용의 순서를 나열하시오

조건:

- "긴급", "보통", "낮음" 의 우선 순위를 가진다.

- 동일한 우선 순위 작업의 경우, 소요시간이 작은 것을 우선으로 한다.

- 동일한 소요시간의 작업인 경우, 먼저 들어온 작업을 우선한다.

(개발 언어 선택은 자유 C,C++,PHP,python,Javascript,JAVA 등)

 

[출력 결과]

긴급, 2, G.메일 전송시 첨부파일 누락됨

긴급, 2, L.전체 메일함 동기화 안되는 문제

긴급, 3, B.OTP 사용자 로그인 안됨

긴급, 3, E.메일의 본문이 표시되지 않는 문제

 

보통, 1, C.권한 안내 문구 수정

보통, 1, F.첨부파일 사이즈 표시 오류 수정

보통, 3, H.1:1 문의 기능 구현

보통, 3, J.안읽음 카운트 오류 문제 

 

낮음, 1, A.로그인 화면 오타 수정

낮음, 1, I.제품 로고 변경

낮음, 1, K.폰트 색상 변경 

낮음, 2, D.로딩중 표시 아이콘 변경

 

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package linuxware2;
 
 
public class OrderList  {
 
    Level level;
    int number;
    String alphabet;
    
    
    public OrderList(Level level, int number, String alphabet) {
        super();
        this.level = level;
        this.number = number;
        this.alphabet = alphabet;
    }
 
    public enum Level {
        긴급, 보통, 낮음
    }
    
    public Level getLevel() {
        return level;
    }
 
    public void setLevel(Level level) {
        this.level = level;
    }
 
    public int getNumber() {
        return number;
    }
 
    public void setNumber(int number) {
        this.number = number;
    }
 
    public String getAlphabet() {
        return alphabet;
    }
 
    public void setAlphabet(String alphabet) {
        this.alphabet = alphabet;
    }
    
    public static void main(String[] args) {
        List<OrderList> data = new ArrayList<OrderList>(); 
        data.add(new OrderList(Level.낮음, 1"A.로그인 화면 오타 수정"));
        data.add(new OrderList(Level.긴급, 3"B.OTP 사용자 로그인 안됨"));
        data.add(new OrderList(Level.보통, 1"C.권한 안내 문구 수정"));
        data.add(new OrderList(Level.낮음, 2"D.로딩중 표시 아이콘 변경"));
        data.add(new OrderList(Level.긴급, 3"E.메일의 본문이 표시되지 않는 문제"));
        data.add(new OrderList(Level.보통, 1"F.첨부파일 사이즈 표시 오류 수정"));
        data.add(new OrderList(Level.긴급, 2"G.메일 전송시 첨부파일 누락됨"));
        data.add(new OrderList(Level.보통, 3"H.1:1 문의 기능 구현"));
        data.add(new OrderList(Level.낮음, 1"I.제품 로고 변경"));
        data.add(new OrderList(Level.보통, 3"J.안읽음 카운트 오류 문제"));
        data.add(new OrderList(Level.낮음, 1"K.폰트 색상 변경"));
        data.add(new OrderList(Level.긴급, 2"L.전체 메일함 동기화 안되는 문제"));
        
        Collections.sort(data, new Comparator<OrderList>() {
            @Override
            public int compare(OrderList entry1, OrderList entry2) {
                Level time1 = entry1.getLevel();
                Level time2 = entry2.getLevel();
                if(time1 == time2) {
                    int number1 = entry1.getNumber();
                    int number2 = entry2.getNumber();
                    if(number1 > number2) {
                        return 1;
                    } else if(number1 < number2) {
                        return -1;
                    } else {
                        String letter1 = entry1.getAlphabet();
                        String letter2 = entry2.getAlphabet();
                        return letter1.compareTo(letter2);
                    }
                }
                return time1.compareTo(time2);
            }
            
        });
        for(OrderList all : data) {
            System.out.println(all.getLevel() + " \t " + all.getNumber() + "\t" + all.getAlphabet());
        }
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

처음엔 다순히 Comparator 사용해서 가나다 순서대로 출력하는줄 알았는데 보니까 긴급 > 보통 > 낮음 순위여서 나의 기준으로 순위를 정해야되는 상황이 생겼다. 그래서 다시 Enum를 만들어서 순위 정한후 출력!

+ Recent posts