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이상의 자릿수가 입력이 됐을때에도 작동하게 만들고 싶어서 욕심을 내다보니 시간을 많이 잡아먹었다.
'단기목표 게으름 퇴치 카테고리 > JLPT N2 + 알고리즘' 카테고리의 다른 글
JLPT N2(독해) 및 알고리즘 공부 D-6 (0) | 2018.11.27 |
---|