내가 푼 방식은 이러하다
99이하의 자연수는 모두 한수가 되므로 99이하의 양의 정수가 주어졌을 때는 한수의 개수가 그 양의 정수 값이 된다.
따라서 100이상의 수가 관건이다.
일의자리 숫자, 십의자리 숫자, 백의자리 숫자를 각각 구해서 일의자리 숫자-십의자리 숫자 = 십의자리 숫자-백의자리 숫자를 해주면 한수의 조건이 된다.
아래 내가 코딩한 것을 보면 이해가 될 것이다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
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());
int count=0;
int d1, d2;
if(n<100) {
bw.write(n + "\n");
bw.flush();
}
else {
for(int i=100; i<=n; i++) {
d1 = (i%10)-((i/10)%10); //일의자리 숫자에서 십의자리 숫자를 뺀 값
d2 = ((i/10)%10)-((i/10)/10); //십의자리 숫자에서 백의자리 숫자를 뺀 값
if(d1==d2) {
count++;
}
}
count+=99; //100보다 작은 수는 모두 한수
bw.write(count + "\n");
bw.flush();
}
}
}
반응형
'백준' 카테고리의 다른 글
[자바] 백준 - 3052번(나머지) (0) | 2021.04.05 |
---|---|
[자바] 백준 - 11720번 (숫자의 합) (0) | 2021.04.05 |
[JAVA] 백준 - 2751번(수 정렬하기2) (1) | 2021.04.03 |
[JAVA] 백준 - 1157번(단어 공부) (0) | 2021.03.28 |
[JAVA] 백준 - 8958번(OX퀴즈) (0) | 2021.03.28 |