728x90
반응형
문제
https://www.acmicpc.net/problem/1065
풀이 방법
함수 카테고리에 있는 기본 문제다.
나는 한수인지 아닌지 체크해주는 함수를 만들어서 풀이했다.
함수에는 우선 10미만인 수는 모두 한수이기 때문에 true를 반환해주고, 10이상부터는 수를 String으로 변환 후 0번째 값과 1번째 값의 차이를 계산해서 그 차이값을 저장해줬다.
그리고 이제 정수를 한자리수씩 보면서 본인과 그 다음 자리 수의 차이가 이전에 구해놨던 gap과 다르다면 바로 false를 반환해줬다.
그리고 이제 메인함수에서는 true이면 한수이므로 cnt변수에 1를 추가해주었고, 마지막에 cnt를 출력해줬다.
제출 코드
import java.io.*;
public class BJ_1065_한수 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int cnt=0;
for (int i = 1; i <= N; i++) {
if(check(i)) {
cnt++;
}
}
System.out.println(cnt);
}
private static boolean check(int i) {
if(i<10) return true;
String n = Integer.toString(i);
int gap = (n.charAt(0)-'0')- (n.charAt(1)-'0');
for (int j = 0; j < n.length()-1; j++) {
if(((n.charAt(j)-'0')- (n.charAt(j+1)-'0')) != gap) return false;
}
return true;
}
}
728x90
반응형
'알고리즘 > BJ' 카테고리의 다른 글
[BJ] 백준 1003 피보나치 함수 (JAVA) (0) | 2022.04.12 |
---|---|
[BJ] 백준 1012 유기농 배추 (JAVA) (0) | 2022.03.30 |
[BJ] 백준 13458 시험감독 (JAVA) (0) | 2022.03.27 |
[BJ] 백준 8958 OX퀴즈 (JAVA) (0) | 2022.03.25 |
[BJ] 백준 3052 나머지 (JAVA) (0) | 2022.03.24 |