분류 전체보기 127

[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

Chapter15. 텍스쳐

텍스쳐의 필요성 지난 시간까지 살펴보면서 하나의 모델이 만들어지기 까지 수많은 연산 과정이 있었다. 그런데, 울퉁불퉁한 목재, 표면의 굴곡등을 3D 모델링한다면 그만큼 더 많은 연산이 필요할 것이다.(거의 불가능에 가깝다) 반면, 3D모델링을 하지 않는다면 굴곡에 의해 발생하는 음영감을 표현할 수 없어 사실감이 저하된다. 따라서, 3D모델링과 텍스쳐를 적절히 조화시키는것이 매우 중요하다 텍스쳐는 마치 시트지를 붙이듯이 사실감이 높게 적용된 그림을 오브젝트 표면에 입히는 것이다. 라이트 매핑 : 빛의 효과 등을 미리 계산하여 이미지로 만든 후, 물체의 표면 위에 올리는 것도 가능하다 주변 매핑 : 물체 외부환경을 매핑하여, 반사되고 있는 반짝이는 물체면을 표현한다. 텍스쳐의 개념 텍스쳐는 특정 모양의 이미..

Computer Graphics 2021.06.14

Chapter14. 모델 Load & 조명주기

include #include #include #include #include #include using namespace std; class CPoint2f{ //2차원 실수 좌표를 가지는 class public : vector d{ 0, 0}; }; class CPoint3f{ //3차원 실수 좌표를 가지는 class public : vector d{ 0, 0, 0}; }; class CPoint3i{ //3차원 정수형 좌표를 가지는 class public : vector d{ 0, 0, 0}; }; class CFace{ //면을 이루는 vertex pairs. 1/1/1 2/2/1 4/3/1 3/4/1 네개의 정점이 하나의 면을 이룬다 public : vector v_pairs; // 1/1/1이..

Computer Graphics 2021.06.09

Chapter13-1. 조명과 음영 OpenGL 코딩

전역 주변광 3차원 공간에 벽, 바닥, 공 만들기 전역 주변광 추가 glEnable(GL_LIGHTING)의 효과 확인 glEnable(GL_LIGHTING); glShadeModel(GL_SMOOTH); glEnable(GL_DEPTH_TEST); GLfloat light_global_ambient[] = {0.0, 0.0, 0.1, 1.0}; //ambient : 주변광 glLightModelfv(GL_LIGHT_MODEL_AMBIENT, light_global_ambient); 위치성 광원 추가 위치성 광원 1개 추가 광원의 위치 변경 테스트 광원의 색상 변경 테스트 GLfloat bNonDirectionalLight = 1.0; //DirectionalLight가 아니다. GLfloat light..

Computer Graphics 2021.06.09