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
 
public class Main {
 
    public static void main(String[] args) throws Exception{
        //키와 값이 정해져서 hashmap를 사용했어요
        HashMap<String, Integer> map = new HashMap<String, Integer>();
        map.put("A"3);
        map.put("B"3);
        map.put("C"3);
        map.put("D"4);
        map.put("E"4);
        map.put("F"4);
        map.put("G"5);
        map.put("H"5);
        map.put("I"5);
        map.put("J"6);
        map.put("K"6);
        map.put("L"6);
        map.put("M"7);
        map.put("N"7);
        map.put("O"7);
        map.put("P"8);
        map.put("Q"8);
        map.put("R"8);
        map.put("S"8);
        map.put("T"9);
        map.put("U"9);
        map.put("V"9);
        map.put("W"10);
        map.put("X"10);
        map.put("Y"10);
        map.put("Z"10);
        //가성비갑인 Buffered 형재들 갑니다
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        //str안에 입력 받고
        String str = br.readLine();
        //char마다 split해주고
        String[] ch = str.split("");
        int sum = 0;
        //map안에 있는 해당 키의 숫자를 더하기
        for(int i = 0; i < ch.length; i++) {
            sum += map.get(ch[i]);
        }
        
        bw.write(String.valueOf(sum));
        bw.flush();
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

'알고리즘' 카테고리의 다른 글

백준 7단계(1316)  (0) 2019.12.10
백준 7단계(2941)  (0) 2019.12.10
백준 7단계(2908)  (0) 2019.12.10
백준 7단계(1152)  (0) 2019.12.10
백준 7단계(1157)  (0) 2019.12.10
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
 
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 str = br.readLine();
        StringTokenizer st = new StringTokenizer(str);
        //문제의 목적은 원래 2개의 수만 입력 받는거지마 그냥 해보고 싶어서 숫자 제한 상관없이 구현
        //그래서 arr방을 token의 크기만큼 선언
        int[] arr = new int[st.countTokens()];
        
        //포문으로 토큰을 arr에 저장
        for(int i = 0; i < arr.length; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
        }
        //원래수의 일자리
        int ones = 0;
        //원래수의 십자리
        int tens = 0;
        //원래수의 백자리
        int hundreds = 0;
        //제일 큰 숫자를 저장하는 변수
        int max = 0;
        
        //포문을 배열 크기만큼 돌리기
        for(int i = 0; i < arr.length; i++) {
            //이렇게 일자리부터 백자리까지 저장
            ones = arr[i] % 10;
            tens = arr[i]/10 % 10;
            hundreds = arr[i]/100;
            //해당 배열에 거꾸로된 숫자를 다시 저장
            arr[i] = (ones * 100+ (tens * 10+ hundreds;
            //만약 맥스보다 크면 맥스에 값 저장
            if(max < arr[i]) max = arr[i];
        }
        //맥스 출력 끝
        bw.write(String.valueOf(max));
        bw.flush();
 
    }
    
 
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

'알고리즘' 카테고리의 다른 글

백준 7단계(2941)  (0) 2019.12.10
백준 7단계(5622)  (0) 2019.12.10
백준 7단계(1152)  (0) 2019.12.10
백준 7단계(1157)  (0) 2019.12.10
백준 7단계(2675)  (0) 2019.12.07
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
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 str = br.readLine();
        StringTokenizer st = new StringTokenizer(str);
 
        bw.write(String.valueOf(st.countTokens()));
        bw.flush();
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

'알고리즘' 카테고리의 다른 글

백준 7단계(5622)  (0) 2019.12.10
백준 7단계(2908)  (0) 2019.12.10
백준 7단계(1157)  (0) 2019.12.10
백준 7단계(2675)  (0) 2019.12.07
백준 7단계(10809)  (0) 2019.12.07
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
 
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 str = br.readLine();
        //알파벳 count를 담을 변수
        int[] arr = new int[26];
        //빼기 기준을 소문자로 잡아서 대문자를 다 소문자로 만들기
        //해당 문자 - 'a'이 어레이의 방 위치, 어레이 ++
        for(int i = 0; i < str.length(); i++) {
            arr[Character.toLowerCase(str.charAt(i)) - 'a']++;
        }
        //기초 max값 잡아주기
        int max = 0;
        //출력할 char
        char z = 0;
        for(int i = 0; i < arr.length; i++) {
            //만약 맥스보다 크면 해당 캐릭터를 z에 저장 그리고 arr[i] 를 max에
            if(arr[i] > max) {
                z = (char)(i + 'a');
                max = arr[i];
            }
            //만약 똑같은 반복수가 나오면 그리고 그게 0이 아니면 물음표로 char에 저장
            else if(arr[i] == max && max != 0) z = '?';
        }
        bw.flush();
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
white">cs

'알고리즘' 카테고리의 다른 글

백준 7단계(2908)  (0) 2019.12.10
백준 7단계(1152)  (0) 2019.12.10
백준 7단계(2675)  (0) 2019.12.07
백준 7단계(10809)  (0) 2019.12.07
백준 7단계(11720)  (0) 2019.12.07

예외는 두 가지 종류 :

일반 예외, exception 그리고 실행 예외 runtime exception

 

예외 처리 코드란 : 프로그램에서 예외가 발생 하였을 때 갑작스러운 종료를 막기위해 처리하는 코드.

 

NullPointerException = 객체 참조가 없을때!

ArrayIndexOutOfBoundsException = 배열에서 인덱스 범위를 초과했을때

NumberFormatException = 문자열인데 숫자로 변경했을때

ClassCastException = 안맞는 타입 변환(casting)을 했을 경우. Instanceof 활용 ok

 

모든 예외 객체는 exception를 상속하기 때문에 exception에 있는 getMessage 그리고 printStackTrace를 많이 사용한다

getMessage는 오류 메시지를 얻고,

printStackTrace는 오류의 경로를 추적할 때 사용한다

 

throw는 강제로 예외를 발생하는 것

throws는 예외의 책임을 다른데에 전달하는 것

 

java.lang안에 있는 클래스는 import할 필요가 없다

object는 자바의 최상위 부모 클래스

 

object equals의 원리는 모든 객체는 object를 상속받아서 비교할 때 자동으로 object타입으로 형변환이된다.

 

객체 해시코드란 객체를 식별할 하나의 정수값을 말한다.

 

System은 다 정적으로 이루어져있다

 

String은 내부 문자열을 수정할 수 없다, 그래서 수정을 할 때 마다 새로운 객체를 생성하는것이며, 메모리에 과부화, 즉 성능 저하가 될 요인이 될 수 있다.

그래서 stringbuilder 그리고 stringbuffer를 사용하는 것이 바람직하다.

Stringbuilder stringbuffer의 큰 차이점은 stringbuffer multi-thread 환경에서 사용할 수 있도록 동기화가 되었있다.

 

Calendar은 추상 클래스여서 정적인 getInstance를 통해 생성이가능하다. 그 이유는 각 지역마다 사용하는 시간법이 달라서, 만약 한국인데 la시간을 사용하고 싶다면 TimeZone를 사용하며 된다. TimeZone.getAvailableIDs();를 사용하면 가능한 timezone들이 보인다.

 

MessageFormat.format(문자열, 해당 value);

'ETC' 카테고리의 다른 글

이것이 자바다 노트3(제너릭)  (1) 2019.12.14
이것이 자바다 노트2(스레드 + 멀티스레드)  (0) 2019.12.14
Garbage Collector  (0) 2019.12.01
Comparable vs Comparator  (0) 2019.12.01
Algorithm time complexity  (2) 2019.12.01
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
 
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());
        
        //n의 개수 만큼 반복
        for(int i = 0; i < n; i++) {
            //enter할때까지 string으로 입력받기
            String str = br.readLine();
            //stringtokenizer로 입력 받은 숫자와 string구분
            StringTokenizer st = new StringTokenizer(str);
            while(st.hasMoreTokens()) {
                //숫자는 repeat
                int repeat = Integer.parseInt(st.nextToken());
                //문자열은 repeatString
                String repeatString = st.nextToken();
                //문자열의 길이만큼 첫포문 실행
                for(int j = 0; j < repeatString.length(); j++) {
                    //repeatString j의 위치에 있는 캐릭터를 repeat만큼 반복
                    for(int u = 0; u < repeat; u++) {
                        bw.write(String.valueOf(repeatString.charAt(j)));
                    }
                }
            }
            bw.write("\n");
            //n이 2를 입력 받았으면, 한번 실행 후 다시 돌기. bufferedreader의 특성 flush하기 전까지 출력이 안돼서 
            //따로 입력 받은 값와 반복한 출력 값을 저장 안해도 된다
        }
        bw.flush();
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

'알고리즘' 카테고리의 다른 글

백준 7단계(1152)  (0) 2019.12.10
백준 7단계(1157)  (0) 2019.12.10
백준 7단계(10809)  (0) 2019.12.07
백준 7단계(11720)  (0) 2019.12.07
백준 7단계(11654)  (0) 2019.12.07
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
 
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 str = br.readLine();
        //int array의 default 값은 0이지만 -1로 26개의 값을 미리 선언. 알파벳은 26개가 있으니까
        int[] arr = {-1-1-1-1-1-1-1-1-1-1
                -1-1-1-1-1-1-1-1-1-1
                -1-1-1-1-1-1};
        //입력받은 str 길이만큼 실행
        for(int i = 0; i < str.length(); i++) {
            //a의 ascii 코드는 97, 만약 baekjoon이라고 예시를 들면
            //baekjoon의 첫번째 b는 alphabet의 2번째 순서이니 1번째방에 값을 입력해야된다
            //b - 97 = 1, 왜냐면 b는 98이여서, 여기서 'a'를해도 상관은 없다
            //baekjoon에서 o가 2개이다. 먼저 온 o의 순서를 저장해야되서 -1이면 값을 넣고 
            //만약 -1이 아니란 뜻은 벌써 값이 들어갔다는 뜻이여서 6번째 o는 입력이 안된다.
            if(arr[str.charAt(i) - 97== -1) arr[str.charAt(i) - 'a'= i;
        }
        //write으로 뚝딱
        for(int i = 0; i < arr.length; i++) {
            bw.write(arr[i] + " ");
        }
        bw.flush();
    }
}
 
    
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

'알고리즘' 카테고리의 다른 글

백준 7단계(1157)  (0) 2019.12.10
백준 7단계(2675)  (0) 2019.12.07
백준 7단계(11720)  (0) 2019.12.07
백준 7단계(11654)  (0) 2019.12.07
백준 6단계(1065)  (0) 2019.12.07
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
 
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));
        
        //몇개의 숫자를 입력받을지 결정하는 n
        //하지만 bufferedReader를 사용하는데 enter를 칠때까지 계속 입력을 받는다..
        //어떻게 입력 받은 만큼 제한을 두는지 모르겠다
        int n = Integer.parseInt(br.readLine());
        int sum = 0;
        
        for(int i = 0; i < n; i++) {
            //character로 인풋을 받아서 character.getNumericValue로 형변환
            sum += Character.getNumericValue(br.read());
        }
        bw.write(String.valueOf(sum));
        bw.flush();
        
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

'알고리즘' 카테고리의 다른 글

백준 7단계(2675)  (0) 2019.12.07
백준 7단계(10809)  (0) 2019.12.07
백준 7단계(11654)  (0) 2019.12.07
백준 6단계(1065)  (0) 2019.12.07
백준 6단계(4673)  (0) 2019.12.07

+ Recent posts