https://www.acmicpc.net/problem/1065
분류 : 단계별 문제 - 함수
소요 시간 : 30분 이상
실행 코드 :
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
int idx = 0;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
int countHan =0;
for(int i=1; i<=num; i++) {
countHan += checkHan(i+"");
}
System.out.println(countHan);
}
public static int checkHan(String num) { 2자리 이하는 모두 1 반환, 3자리 이상은 검증 후 한수이면 1반환
int idx =1;
char[] arr = num.toCharArray();
if(num.length()<=2) {
idx = 1;
}
else{
for(int i=0; i<arr.length-2; i++) {
idx =1;
int x1 = Character.getNumericValue(arr[i]);
int x2 = Character.getNumericValue(arr[i+1]);
int x3 = Character.getNumericValue(arr[i+2]);
if(x1 - x2 != x2 - x3) { //각 자리의 차가 같지 않다면
idx = 0;
break;
}
}
}
return idx;
}
}
풀이 과정 : toCharArray 활용해서 각 자리수를 나눈 후, 각 자리수를 비교해서 한수이면 1을 반환하는 checkHan 함수를 만들었다. 실행 하는 main함수 부분에서 입력 부분을 잘못해놓아서 한참 헤맸다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 1929번 - 소수 구하기 (Java 8) (0) | 2022.02.24 |
---|---|
백준 4948번 - 베르트랑 공준 (Java 8) (0) | 2022.02.24 |
백준 9020번 - 골드바흐의 추측 (Java 8) (0) | 2022.02.24 |
백준 2675번 - 문자열 반복 (Java 8) (0) | 2021.11.06 |
백준 1316번 - 그룹 단어 체커 (Java 8) (0) | 2021.09.14 |
댓글