접근 방법
N<=1000
알고리즘 : Brute force
1. N을 자리수 별로 구분한 후 for 문
2. 99까지는 n 리턴 100이상일때 자리수 구분 후 for 문
Javascript
function solution() {
let input = require("fs")
.readFileSync("input.txt") //"/dev/stdin"
.toString()
.trim()
.split("\n")
.map((val) => val.trim());
let n = +input[0];
let cnt = 0;
if (n <= 99) {
cnt += n;
} else {
cnt += 99;
for (let i = 100; i <= n; i++) {
let divideNum = String(i)
.split("")
.map((v) => +v);
let len = divideNum.length;
let tmp = divideNum[1] - divideNum[0];
let check = false;
for (let j = 2; j < len; j++) {
if (tmp !== divideNum[j] - divideNum[j - 1]) {
check = false;
break;
} else {
check = true;
}
}
if (check) {
cnt++;
check = false;
}
}
}
console.log(cnt);
}
solution();
C++
#include <bits/stdc++.h>
using namespace std;
bool checkNum(int n);
int main()
{
freopen("input.txt", "r", stdin); //제출 시 삭제
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n;
cin>>n;
int cnt = 0;
for(int i=1; i<=n;i++){
if(checkNum(i)) cnt +=1;
}
cout<<cnt<<"\n";
return 0;
}
bool checkNum(int n){
int d1,d2,d3;
d1 = n/100;
d2 = (n/10)%10;
d3 = n%10;
int diff1, diff2;
diff1 = d2-d1;
diff2 = d3-d2;
if(n<100|| diff1 == diff2) return true;
else return false;
}
'코딩테스트(알고리즘) > baekjoon' 카테고리의 다른 글
[baekjoon] 블랙잭 2798 (Javascript,c++) (0) | 2022.06.11 |
---|---|
[baekjoon] 영화감독 숌 1436 (Javascript, c++) (0) | 2022.06.11 |
[baekjoon] 숫자 정사각형 1015 (Javascript, c++) (0) | 2022.06.09 |
[baekjoon] 행렬 곱셈 2740 (Javascript, c++) (0) | 2022.06.09 |
[baekjoon] 문자열 1120 (javascript, c++) (0) | 2022.06.09 |