์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/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++

 

java
๋‹ซ๊ธฐ
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; โ€Œ} }