์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/BOJ_Java

[BOJ/Step6] 1065 : ํ•œ์ˆ˜ (JAVA)

NaNaRin๐Ÿ™ƒ 2021. 1. 11. 11:34

www.acmicpc.net/problem/1065

 

1065๋ฒˆ: ํ•œ์ˆ˜

์–ด๋–ค ์–‘์˜ ์ •์ˆ˜ X์˜ ๊ฐ ์ž๋ฆฌ๊ฐ€ ๋“ฑ์ฐจ์ˆ˜์—ด์„ ์ด๋ฃฌ๋‹ค๋ฉด, ๊ทธ ์ˆ˜๋ฅผ ํ•œ์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค. ๋“ฑ์ฐจ์ˆ˜์—ด์€ ์—ฐ์†๋œ ๋‘ ๊ฐœ์˜ ์ˆ˜์˜ ์ฐจ์ด๊ฐ€ ์ผ์ •ํ•œ ์ˆ˜์—ด์„ ๋งํ•œ๋‹ค. N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , N๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜

www.acmicpc.net


๋ฌธ์ œ

์–ด๋–ค ์–‘์˜ ์ •์ˆ˜ 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;
	}

}