๋ฌธ์
์ด๋ค ์์ ์ ์ X์ ๊ฐ ์๋ฆฌ๊ฐ ๋ฑ์ฐจ์์ด์ ์ด๋ฃฌ๋ค๋ฉด, ๊ทธ ์๋ฅผ ํ์๋ผ๊ณ ํ๋ค. ๋ฑ์ฐจ์์ด์ ์ฐ์๋ ๋ ๊ฐ์ ์์ ์ฐจ์ด๊ฐ ์ผ์ ํ ์์ด์ ๋งํ๋ค. N์ด ์ฃผ์ด์ก์ ๋, 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , N๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ํ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ 1,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์ N์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , N๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ํ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
110
์์ ์ถ๋ ฅ 1
99
์์ ์ ๋ ฅ 2
1
์์ ์ถ๋ ฅ 2
1
์์ ์ ๋ ฅ 3
210
์์ ์ถ๋ ฅ 3
105
์์ ์ ๋ ฅ 4
1000
์์ ์ถ๋ ฅ 4
144
ํ์ด
1. ์ด๋ค ์๊ฐ ํ์์ธ์ง ํ๋จํ๋ boolean xIs(int n) ํจ์ ์์ฑ
1-1. n์ด ๋์๋ฆฌ์๋ผ๋ฉด ๋ฌด์กฐ๊ฑด ํ์์ด๊ธฐ ๋๋ฌธ์ true ๋ฐํ
1-1. n์ด ์ธ์๋ฆฌ์๋ผ๋ฉด int[3] array๋ฅผ ์ ์ธ(1000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์ด๊ธฐ ๋๋ฌธ์ ์ต๋ 999), n์ ์ชผ๊ฐ ์ ์ฅ
1-2. array[2]์ array[1]์ ์ฐจ์ด๊ฐ array[1]๊ณผ array[0]์ ์ฐจ์ด์ ๊ฐ์์ง ๋น๊ต (= ๋ฑ์ฐจ์์ด์ธ์ง ํ๋จ)
1-3. ํ์๋ฉด true ๋ฐํ
2. i๊ฐ ํ์๋ฉด count++
import java.util.Scanner;
public class B1065 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int count = 0; // ํ์ ๊ฐ์ ์นด์ดํธ
for(int i = 1; i <= num; i++) {
if(xIs(i)) {
count++;
}
}
System.out.println(count);
}
static boolean xIs (int n) {
boolean b = false; // ํ์๋ง true ๋ฐํ
int[] array = new int[3];
if(n < 100) { // 1 ~ 99
b = true;
} else if(n < 1000) { // 100 ~ 999
array[0] = n / 100; // ์ฒซ๋ฒ์งธ์๋ฆฌ
array[1] = n / 10 % 10; // ๋๋ฒ์งธ์๋ฆฌ
array[2] = n % 100 % 10; // ์ธ๋ฒ์งธ์๋ฆฌ
if(array[2]-array[1] == array[1]-array[0]) // ์ฐจ์ด ๋น๊ต
b = true;
} else { // 1000
b = false;
}
return b;
}
}