기타등등 79

[C++] 숫자의 총 개수(Large)

방법규칙성 : 자릿수에 따라서 갯수가 9*(10씩 증가)함을 알 수 있다.계속 반복한다.반복할 때마다 자릿수는 1씩 카운트된다.반복할 때마다 개수는 9를 시작으로 10씩 곱해준다.256이라는 값이 들어왔다고 가정해보겠다.자릿수는 3자릿수까지 계산해야겠지만 개수는 900개이면 안된다.따라서, 256-(두자릿수 개수의 합=99)를 해주면 256이라는 숫자의 세자리 숫자의 개수가 나온다.즉, n-(지난 자릿수 숫자의 합)이 될 것이다.자릿수(cnt) , 개수(d), 총개수(res)로 생각해보면반복할때마다 총개수(res)는 누적값이 계속 활용되고, cnt는 1씩 증가, d는 10씩 증가한다.이렇게 결과값은 res = res + (cnt * (n-sum))을 통해 구할 수 있음을 알았다.그런데, 반복을 어느시점에..

[C++] 자릿수의 합 & 숫자의 총 개수

//10번 문제 #include #include using namespace std; int digit_sum(int x){ int res = 0; //10을 나눈 나머지는 첫번째 자릿수의 값을 구하는 방법 //그다음 10을 나눠서 다음 자릿수의 값을 구하도록함. while(x != 0){ res += (x % 10); x = x / 10; } return res; } int main() { int N, x, sum, res ,max = -2147000000; cin >> N; for(int i = 0; i > x; sum = digit_sum(x); if(sum > max){ max = sum; res = x; }else if(sum == max){ if(x > res){ res = x; } } } c..

[C++] 올바른 괄호

#include #include #include using namespace std; int main() { char str[30]; int i , cnt =0; //카운트 하는 이유는 //()))와 같이 )는 push를 하지 않기 때문에 empty라고 인식하기 때문에 int opencount = 0; //열린 괄호 카운트 int closecount = 0; //닫힌 괄호 카운트 stack s; scanf("%s",str); //가장 처음 닫힌 괄호가 들어올 것에대한 예외처리 //예외처리 안해줘도 되긴하다. 만약 예외처리를 빼면 밑에 for문을 0부터 돌리면 된다. if(str[0] == '(') { s.push(str[0]); opencount++; } else { //닫힌 괄호 들어오면 그냥 끝내버린..

[C++] 나이차이

#include using namespace std; int main() { int N, a, i, max = -2147000000, min = 2147000000; //integer 자료형에 들어갈 수 있는 가장 작은 값과 가장큰 값으로 초기화하였다. 그냥 외우자 //이렇게 하면 무조건 첫 입력값은 max min 둘 다에 할당된다. cin >> N; for(i = 1; i> a; if(a > max) max = a; // 첫 입력값이 max에 들어가 있으므로 그 다음값들과 비교하는 방식이다. if(a < min) min = a; } cout