백준
[자바] 백준 - 1065번(한수)
챈박
2021. 4. 5. 14:03
내가 푼 방식은 이러하다
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();
}
}
}
반응형