1. JLPT 단어 및 독해


공부 내용 및 문제 풀은것 등의 사진을 일단 내 컴퓨터에 파일형태로 킵;(저작권 문제)



2. 알고리즘 공부


백준 알고리즘 [1065번 한 수]


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
import java.io.*;
 
public class Main {
 
    public static void main(String[] args) throws IOException {
 
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 
        int cnt = 0;
        int x = Integer.parseInt(String.valueOf(br.readLine()));
 
        for(int i=1; i<x+1; i++){
            cnt += getHanNum(i);
        }
 
        bw.write(String.valueOf(cnt));
        bw.flush();
        bw.close();
    }
 
    private static int getHanNum(int num){
 
        int hanNum = num;
        int[] oneToEndArr = new int[String.valueOf(num).length()];      //index에 0부터 일의 자리의 숫자가 들어가는 배열
 
        if(oneToEndArr.length <= 2){        //어차피 0을 제외한 100 이하 자리는 전부 다 한수이기 때문에
            return 1;
        }else{
            int[] d = new int[oneToEndArr.length-1];        //100부터 1000까지는 여기에 들어와서 각 항의 차를 구한다.
            int j= 0, temp = 0;
 
            for(int i=0; i<oneToEndArr.length; i++){        //우선, 각 자릿수를 구해서 일의자리부터 끝자리까지에 해당하는 수를 oneToEndArr 배열에 넣어준다
                oneToEndArr[i] = hanNum%10;
                hanNum /= 10;
            }
 
            for(int i=oneToEndArr.length-1; i>0; i--){      //일의 자리와 십의 자리, 십의 자리와 백의 자리에 해당하는 차를 d 배열에 넣는다
                d[j] = oneToEndArr[i] - oneToEndArr[i-1];
                j++;
            }
            if(d[0== d[1]){                               //각 항의 차가 등차가 되는지 비교
                return 1;
            }else{
                return 0;
            }
        }
    }
}
cs

아쉬웠던 점: 입력이 1000이하의 숫자가 들어간다는게 조건이지만 1000이상의 자릿수가 입력이 됐을때에도 작동하게 만들고 싶어서 욕심을 내다보니 시간을 많이 잡아먹었다.

+ Recent posts