์ƒˆ์†Œ์‹

์•Œ๊ณ ๋ฆฌ์ฆ˜/BaekJoon

BOJ 1065๋ฒˆ: ํ•œ์ˆ˜

  • -
728x90

๋ฌธ์ œ

์–ด๋–ค ์–‘์˜ ์ •์ˆ˜ X์˜ ๊ฐ ์ž๋ฆฌ๊ฐ€ ๋“ฑ์ฐจ์ˆ˜์—ด์„ ์ด๋ฃฌ๋‹ค๋ฉด, ๊ทธ ์ˆ˜๋ฅผ ํ•œ์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค

๋“ฑ์ฐจ์ˆ˜์—ด์€ ์—ฐ์†๋œ ๋‘ ๊ฐœ ์ˆ˜์˜ ์ฐจ์ด๊ฐ€ ์ผ์ •ํ•œ ์ˆ˜์—ด์„ ๋งํ•œ๋‹ค

N์ด ์ฃผ์–ด์กŒ์„ ๋Œ€, 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , N๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ํ•œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— 1000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , N๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ํ•œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค

 

์ฝ”๋“œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
using namespace std;
 
int getHansuCount(int num){
    int count=0;
    if(num<100)
    {
        count = num;
    }
    else{
      count+=99;
      for(int i=100;i<=num;i++){
         bool isHanSu=true;
         int idx=i,diff=(idx%10);      //,๋‚˜๋จธ์ง€
         idx/=10;
         int rest=(idx%10);      //2๋ฒˆ์งธ ์ž๋ฆฟ์ˆ˜ ์‚ฝ์ž…
         diff = diff-rest;   //1๋ฒˆ์งธ์™€ 2๋ฒˆ์งธ ์ž๋ฆฟ์ˆ˜์˜ ์ฐจ์ด ์‚ฝ์ž…
         idx/=10;
         
         while(idx>0){
            if(diff!=rest-(idx%10)){
               isHanSu=false;
               break;
            }
            rest=idx%10;
            idx/=10;
         }
         if(isHanSu)
         {
            count++;
         }
      }
    }
    return count;
}
 
 
int main() {
   int num,count=0;
   scanf("%d",&num);
   count = getHansuCount(num);
   printf("%d",count);
   return 0;
}
cs

*๊ฐ„๋‹จํ•œ ํ•ด์„ค*

ํ•œ์ˆ˜๋ผ๋Š” ์šฉ์–ด ์ž์ฒด๊ฐ€ ๋„ˆ๋ฌด ์ดํ•ด๊ฐ€ ์•ˆ๋˜์„œ ํ—ค๋งค๊ฒŒ ๋œ ๋ฌธ์ œ์ด๋‹ค

ํ•œ์ˆ˜๋Š” ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด 1์ž๋ฆฌ ์ˆ˜์ธ 1์€ ํ•œ ๊ฐœ ๋ฐ–์— ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด์กฐ๊ฑด ํ•œ์ˆ˜์ด๋‹ค(๋“ฑ์ฐจ์ˆ˜์—ด์„ ๋น„๊ตํ•  ๋Œ€์ƒ์ด ์—†๊ธฐ ๋•Œ๋ฌธ)

2์ž๋ฆฌ ์ˆ˜์ธ 10,11,12 ๊ฐ™์€ ๊ฒฝ์šฐ (1,0) (1,1) (1,2) ์ด๋ ‡๊ฒŒ ๋‚˜๋ˆ„์–ด ์ง„๋‹ค

๋“ฑ์ฐจ์ˆ˜์—ด์€ ๊ฐ๊ฐ -1,0,1 ๋กœ ๋˜๊ณ  ๋ฌด์กฐ๊ฑด ํ•œ์ˆ˜์ด๋‹ค(๋น„๊ตํ•  ๋Œ€์ƒ์ด ์—†๊ธฐ ๋•Œ๋ฌธ)

๊ทธ๋ž˜์„œ 3์ž๋ฆฌ ์ˆ˜ ์ดํ•˜๋Š” ๋ชจ๋‘ ๋‹ค ํ•œ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— 12๋ฒˆ์ค„์— ๋ณด๋ฉด 100๋ถ€ํ„ฐ for๋ฌธ์ด ์‹œ์ž‘๋œ๋‹ค

while๋ฌธ์ด ๋Œ ๋™์•ˆ 123์˜ ๊ฒฝ์šฐ 123%10=3 (์ผ์˜ ์ž๋ฆฟ์ˆ˜ ๊ตฌํ•˜๊ธฐ) ๊ทธ ๋‹ค์Œ 123/10=12 ์„ ํ•œ ํ›„ 12%10=2(์‹ญ์˜ ์ž๋ฆฟ์ˆ˜)

์ด๋Ÿฐ์‹์œผ๋กœ ๋ฐ˜๋ณตํ•˜์—ฌ ๊ฐ ์ž๋ฆฟ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค

์ž๋ฆฟ์ˆ˜๋ฅผ ๊ตฌํ•œ ๋‹ค์Œ ๊ทธ ์ „์— ๊ตฌํ•œ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋นผ์ฃผ์–ด ๋“ฑ์ฐจ์ˆ˜์—ด์˜ ์ฆ๊ฐ๊ฐ’์„ ๊ตฌํ•˜๊ณ  ๊ทธ ๊ฐ’์ด ๋๋‚ ๋•Œ๊นŒ์ง€ ๋™์ผํ•˜๋‹ค๋ฉด

isHanSu=true๋กœ ์œ ์ง€ํ•œ๋‹ค

 

*๋ฉ”๋ชจ๋ฆฌ*

1984KB

*์‹œ๊ฐ„*

0ms

*์–ธ์–ด*

C++14

*์ฝ”๋“œ๊ธธ์ด*

777B

 

 

*์ด ๋ฐฉ๋ฒ•๋งŒ์ด ๋งž๋Š” ์ •๋‹ต์€ ์•„๋‹™๋‹ˆ๋‹ค.

ํ›จ์”ฌ ์ข‹๊ณ  ๋น ๋ฅธ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€ํ•˜์‹œ๋Š” ๋ถ„๋“ค ํ™”์ดํŒ…! '0'/*

 

๋ฐ˜์‘ํ˜•
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.