본문 바로가기

C++38

C++에서 배열(Array)을 사용하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 배열(Array)을 사용하는 방법에 대해서 알아보겠습니다. # 데이터가 n개가 있는 배열을 정의하고 1~n 사이의 숫자를 무작위로 입력했을때, 1~n까지 몇개 씩 입력되었는지 출력해 보는 방법 #include int main() { int n, i, t; int a[24] = {}; scanf("%d", &n); for(i = 0; i < n; i++) { scanf("%d", &t); a[t] = a[t] + 1; } for(i = 1; i < 24; i++) { printf("%d ", a[i]); } return 0; } # 데이터가 n개가 있는 배열을 정의하고 1~n 사이의 숫자를 무작위로 입력했을 때, 그 배열의 마지막요소부터 출력하는 방법 #i.. 2020. 10. 6.
C++ 이미지 파일 저장용량 계산하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 이미지 파일 저장용량 계산하는 방법에 대해서 알아보겠습니다. 빨강, 초록, 파랑 각 색에 8비트씩 사용할때 28*28*28 = 224 총 24비트가 필요합니다. 그래서 해상도 w * h에 각 픽셀당 필요한 24비트라고 가정할 때, 저장용량의 계산은 다음과 같이 진행하면 됩니다. w * h * 24 이 값을 MB로 환산하려면 8로 나눠 Byte, 1024나눠 KB, 1024로 나눠 MB로 변환하고, 소수 둘째자리 까지 반올림해서 출력하려면 %.2lf 형식으로 사용하면 됩니다. #include int main() { int w, h, b; float total; scanf("%d %d %d", &w, &h, &b); total = w*h*b; total = total/.. 2020. 10. 5.
C++ 소리 파일 저장용량 계산하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 소리 파일 저장용량 계산하는 방법에 대해서 알아보겠습니다. 1초 동안 마이크로 소리강약을 체크하는 수를 h (헤르쯔, Hz 는 1초에 몇 번 체크하는 가를 의미합니다.) 한 번 체크한 결과를 저장하는 비트 b (2비트를 사용하면 0 또는 1 두 가지, 16비트를 사용하면 65536가지를 의미합니다.) 좌우 등 소리를 저장할 트랙 개수인 채널 c (모노는 1개, 스테레오는 2개의 트랙으로 저장합니다.) 녹음할 시간 s가 주어졌다고 가정했을 때, 소리 파일 저자용량 계산하는 방법은 h * b * c * s bit 입니다. bit을 MB(Mega Byte)로 환산하려면, 8로 나눠 Byte로 변환 시켜주고 1024로 나눠 KB로 변환 시켜주고, 또 1024로 나눠 MB로.. 2020. 10. 4.
세개의 배열을 섞어 만들 수 있는 모든 경우의 수 구하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 세개의 배열을 섞어 만들 수 있는 모든 경우의 조합과 그 조합의 수를 구하는 방법에 대해서 알아보겠습니다. #include int main() { int i, j, k, c=0; int r, g, b; scanf("%d %d %d", &r, &g, &b); for(i = 0; i < r; i++) { for(j = 0; j < g; j++) { for(k = 0; k < b; k++) { printf("%d %d %d\n", i, j, k); c++; } } } printf("%d\n", c); return 0; } 이렇게 세개의 배열을 섞어 만들 수 있는 모든 경우의 조합과 그 조합의 수를 구하는 방법에 대해서 알아봤습니다. 유용하셨다면, 공감과 구독 부탁 드립니.. 2020. 10. 4.
3, 6, 9 게임 테스트 출력하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 3, 6, 9 게임 테스트 출력하는 방법에 대해서 알아보겠습니다. 정수(1~100) 중 하나를 입력하면 1부터 해당 정수까지 3, 6, 9 가 들어간 수에 X 표시를 하는 방법입니다. 만약 33이 들어갔다면 XX표시를 하는 방법입니다. #include int main() { int i, n; scanf("%d", &n); for(i = 1; i 2020. 10. 3.
16진수 하나를 받아서 해당 진수에 대한 구구단출력하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 16진수 하나를 받아서 해당 진수에 대한 구구단을 출력하는 방법에 대해서 알아보겠습니다. 16진수( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F ) 중 A, B, C, D, E, F가 입력될 때, 1부터 F까지 곱한 16진수의 구구단을 출력하는 방법입니다. #include int main() { int i, a; scanf("%X", &a); for(i = 1; i < 16; i++){ printf("%X*%X=%X\n",a,i,a*i); } return 0; } 이렇게 16진수 하나를 받아서 해당 진수에 대한 구구단을 출력하는 방법에 대해서 알아봤습니다. 유용하셨다면, 공감과 구독 부탁 드립니다. 감사합니다. :) 2020. 10. 2.
서로 다른 주사위 두개의 모든 경우를 출력하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 서로 다른 주사위 두개의 모든 경우를 확인하는 방법에 대해서 알아보겠습니다. 주사위 면을 설정하기 위해 입력될 두 값은 2, 3이라고 가정하면, 결과값은 아래와 같이 출력되어야 합니다. 1 1 1 2 1 3 2 1 2 2 2 3 이렇게 출력하기 위해서는 for loop안에 다시 for loop 반복 구문을 사용해서 출력을 진행하면 됩니다. #include int main() { int i, j, a, b; scanf("%d %d", &a, &b); for(i = 1; i 2020. 10. 1.
C++에서 for loop 구문을 사용하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 for loop 구문을 사용하는 방법에 대해서 알아보겠습니다. # 정수 1개를 입력받아 0부터 해당 정수까지 출력하는 방법 #include int main() { int i, n; scanf("%d", &n); for(i=0; i 2020. 9. 30.
C++에서 do while loop 구문 사용하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 do while loop 구문을 사용하는 방법에 대해서 알아보겠습니다. # 문자 1개를 입력받아 그 문자까지의 알파벳을 순서대로 나열하는 방법 #include int main() { char x, t='a'; scanf("%c", &x); do { printf("%c ", t++); } while(t != x+1); return 0; } 이렇게 C++에서 do while loop 구문을 사용하는 방법에 대해서 알아봤습니다. 유용하셨다면, 공감과 구독 부탁 드립니다. 감사합니다. :) 2020. 9. 29.
C++에서 while loop 반복 구문 사용하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 while loop 반복 구문 사용하는 방법에 대해서 알아보겠습니다. # 0이아니면 입력된 정수를 출력하고, 0이 입력되면 프로그램 종료하는 방법 #include int main() { int n = 1; while(n != 0) { scanf("%d", &n); n != 0 ? printf("%d\n", n) : printf("") ; } return 0; } # 정수(1~100) 1개가 입력되었을 때 그 정수부터 1까지 카운트다운 하는 방법 #include int main() { int n; scanf("%d", &n); while(n!=0){ printf("%d\n", n); n=n-1; } return 0; } # 정수(1~100) 1개가 입력되었.. 2020. 9. 28.
C++에서 goto 반복구문을 사용하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 goto 구문을 사용하는 방법에 대해서 알아보겠습니다. # 정수를 입력해서 0이 아니면 입력받은 정수를 계속해서 출력하고 0이 입력되면 출력을 중단하는 방법 단, 정수의 범위는 -2147483648 ~ +2147483647 입니다. #include int main() { int n; reload: scanf("%d", &n); n != 0 ? printf("%d\n", n) : printf(""); if(n != 0) goto reload; return 0; } # n개의 정수를 입력하고 그 정수를 그대로 출력하는 방법 단, 정수의 범위는 -2147483648 ~ +2147483647 입니다. #include int main() { int n, m; sc.. 2020. 9. 27.
C++에서 switch 구문을 사용하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 switch 구문을 사용하는 방법에 대해서 알아보겠습니다. # 시험 평가를 문자로 입력받아서 문장으로 출력하는 방법 A: best!!!, B: good!!, C: run!, D: slowly~, 나머지 문자: what? #include int main() { int a; scanf("%c", &a); switch(a) { case 'A': printf("best!!!\n"); break; case 'B': printf("good!!\n"); break; case 'C': printf("run!\n"); break; case 'D': printf("slowly~\n"); break; default: printf("what?\n"); break; } retu.. 2020. 9. 26.
C++에서 if else 구문을 사용하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 if else 구문을 사용하는 방법에 대해서 알아보겠습니다. # 세 정수 a, b, c가 입력되었을 때, 짝수만 출력하는 방법 #include int main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); if(a % 2 == 0) { printf("%d\n", a); } if(b % 2 == 0) { printf("%d\n", b); } if(c % 2 == 0) { printf("%d\n", c); } return 0; } # 세 정수 a, b, c가 입력되었을때, 짝(even)과 홀(odd)를 출력하는 방법 #include int main() { int a, b, c; scanf("%d %d %d", &a, &.. 2020. 9. 25.
C++에서 삼항연산을 하는 방법 | C++ 여러분 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 삼항연산을 하는 방법에 대해서 알아보겠습니다. # 삼항연산을 이용해서 입력된 두 정수 a, b 중 큰 값을 출력하는 방법 #include int main() { int a, b; scanf("%d %d", &a, &b); printf("%d", a > b ? a : b); return 0; } # 삼항연산을 이용해서 입력된 세 정수 a, b, c 중 가장 작은 값을 출력하는 방법 #include int main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); printf("%d", a < b ? (a < c ? a : c) : (b < c ? b : c)); return 0; } 이렇게 C++에서 삼항연산을 하.. 2020. 9. 24.
C++에서 비트단위논리연산을 하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 비트단위논리연산을 하는 방법에 대해서 알아보겠습니다. 참고로 비트단위 논리연산자로는 다음과 같은 기호들이 있습니다. ~ : bitwise not & : bitwise and | : bitwise or ^ : bitwise xor > : bitwise right shift # 입력된 정수를 비트단위로 참/거짓을 바꾼 후 정수로 출력하는 방법 정수를 비트단위로 참/거짓을 바꾼 후 정수로 출력하려면 ~ 기호를 사용합니다. 1을 입력하면 1은 32비트 2진수로 표현하면, 00000000 00000000 00000000 00000001 이 되고, ~1은 11111111 11111111 11111111 11111110 이 되는데 이것은 -2를 의미합니다. #incl.. 2020. 9. 23.
C++에서 논리연산 하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 논리연산을 하는 방법에 대해서 알아보겠습니다. # 1 또는 0이 입력되었을때 반대로 출력하는 방법 입력받는 것은 정수로 받고 논리연산 기호인 !를 사용해서 값을 false로 변환해서 출력합니다. #include int main() { int a; scanf("%d", &a); printf("%d", !a); return 0; } # 두 개의 참 또는 거짓이 입력되었을때 모두 참일 때에만 참을 출력하는 방법 두 개의 값이 모두 참일 때는 && 기호를 사용합니다. #include int main() { int a, b; scanf("%d %d", &a, &b); printf("%d", a && b); return 0; } # 두 개의 참 또는 거짓이 입력되었.. 2020. 9. 22.
C++에서 비교연산을 하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 비교연산을 하는 방법에 대해서 알아보겠습니다. # 정수 2개(a, b)를 입력받아 a가 b보다 크면 1을, a가 b보다 작거나 같으면 0을 출력하는 방법 a가 b보다 클경우, a>b는 true를 반환하는데 이 값은 1이므로 %d를 통해 출력하면 1을 출력할 수 있습니다. 반면에 false의 경우 이 값은 0이므로 %d를 통해 출력하면 0이 출력됩니다. #include int main() { int a, b; scanf("%d %d", &a, &b); printf("%d", a>b); return 0; } # 정수 2개(a, b)를 입력받아 a가 b와 같으면 1을 출력하고, 다르면 0을 출력하는 방법 #include int main() { int a, b;.. 2020. 9. 21.
C++에서 비트시프트 연산을 하는 방법 | C++ 여러분 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 비트시프트 연산을 하는 방법에 대해 알아보겠습니다. # 정수 1개를 입력받아 2배 곱해 출력하는 방법 정수 1개를 입력받아 2배 곱해서 출력하는 방법에 대해서 알아보겠습니다. 연산에서 2를 곱해서 출력해도 되지만, 비트시프트 >>, 2020. 9. 20.
C++에서 아주 기본적인 산술연산 하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 아주 기본적인 산술연산을 하는 방법에 대해서 알아보겠습니다. # 정수 2개를 입력받아 2개 정수의 합을 출력하는 방법 (단, 입력이 되는 정수의 범위는 -1073741824 ~ 1073741824 입니다.) 입력이 되는 정수가 int 범위이나, 산술연산 결과에 의해서 범위를 넘어가게 될 경우가 있으므로, long long int를 사용합니다. #include int main() { long long int a, b; scanf("%lld%lld", &a, &b); printf("%lld", a+b); return 0; } # 정수 1개를 입력받아 부호 바꿔 출력하는 방법 (단, 입력이 되는 정수의 범위는 -2147483647 ~ +2147483647 입니.. 2020. 9. 19.
C++에서 진수변환 하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 C++에서 진수변환하는 방법에 대해서 알아보겠습니다. # 10진수를 8진수로 진수변환 하는 방법 10진수 숫자를 입력받아 8진수로 변환해서 출력하는 방법에 대해서 알아보겠습니다. 10진수 숫자를 받을 때는 %d로 받고 출력할 때 %o를 쓰면 8진수로 변환해서 출력합니다. #include int main() { int data; scanf("%d", &data); printf("%o", data); return 0; } # 10진수를 16진수로 진수변환 하는 방법 10진수를 숫자를 입력받아 16진수로 변환해서 출력하는 방법에 대해서 알아보겠습니다. 10진수 숫자를 입력 받을 때는 %d로 받고 출력할 때, %x를 사용하면 16진수로 변환해서 출력합니다. #include.. 2020. 9. 18.
크기가 큰 정수를 입력받아 출력하는 방법 | long long int | C++ 안녕하세요. 혀코입니다. 이번 시간에는 크기가 큰 정수를 입력받아 그대로 출력하는 방법에 대해서 알아보겠습니다. int 는 -2147483648 ~ + 2147483647 범위의 정수를 입력하고 출력할 수 있습니다. 이 범위보다 크기가 큰 정수를 입력받아 출력하려면 long long int 를 사용해야 합니다. long long int는 -9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807 범위의 정수를 입력하고 출력할 수 있습니다. #include int main() { long long int n; scanf("%lld", &n); printf("%lld", n); return 0; } long long int를 사용할 때는 %lld 로 사용합니다. 이렇.. 2020. 9. 17.
큰 범위의 실수 1개 입력받아 반올림해서 출력하는 방법 | double | C++ 안녕하세요. 혀코입니다. 이번 시간에는 실수 1개를 입력받아 그대로 출력하는 방법에 대해서 알아보겠습니다. 실수를 저장하려면 float을 사용하는데, float은 ±3.4*10-38 ~ ±3.4*1038 범위의 실수만을 저장할 수 있습니다. 이 범위보다 큰 실수를 저장하려면, double을 사용해야 합니다. double은 ±1.7*10-308 ~ ±1.7*10308 범위의 실수를 저장할 수 있습니다. 아래 예제에서는 소수점 이하 자리수가 11이상인 실수를 입력하면, 반올림해서 11자리까지 출력하는 코드입니다. #include int main() { double data; scanf("%lf", &data); printf("%.11lf", data); return 0; } double를 사용할때, scan.. 2020. 9. 16.
크기가 큰 정수를 입력받아 출력하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 크기가 큰 정수를 입력받아 출력하는 방법에 대해서 알아보겠습니다. int는 -2147483648 ~ -2,147,483,647 범위의 정수를 저장할 수 있으나 그 수보다 큰 수를 저장할 수 없습니다. 그래서 그보다 더 큰 수인 4,294,967,295까지의 정수를 저장하려면 unsigned int를 사용해야 합니다. #include int main() { unsigned int n; scanf("%u", &n); printf("%u", n); return 0; } 이렇게 크기가 큰 정수를 입력받아 출력하는 방법에 대해서 알아봤습니다. 유용하셨다면, 공감과 구독 부탁 드립니다. 감사합니다. :) 2020. 9. 16.
년월일 입력 받아 형식 바꿔 출력하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 년월일 입력받아 형식 바꿔 출력하는 방법에 대해서 알아보겠습니다. yyyy.mm.dd 형식의 년월일을 입력받아서 dd-mm-yyyy 형식으로 출력하는 방법입니다. #include int main() { int y, m, d; scanf("%d.%d.%d",&y,&m,&d); printf("%02d-%02d-%04d",d,m,y); return 0; } 이렇게 년원일 입력받아 형식을 바꿔 출력하는 방법에 대해서 알아봤습니다. 유용하셨다면, 공감과 구독 부탁 드립니다. 감사합니다. 2020. 9. 15.
시분초 입력받아 분만 출력하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 시분초 입력받아 분만 출력하는 방법에 대해서 알아보겠습니다. #include int main() { int h, m, s; scanf("%d:%d:%d",&h,&m,&s); printf("%d",m); return 0; } 이렇게 시분초 입력받아 분만 출력하는 방법에 대해서 알아봤습니다. 유용하셨다면, 공감과 구독 부탁 드립니다. 감사합니다. 2020. 9. 14.
문자열을 입력받아 그대로 출력하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 문자열을 입력받아 그대로 출력하는 방법에 대해서 알아보겠습니다. 문자열을 받을 때는 %s를 사용해서 받습니다. #include int main() { char a[51]; scanf("%s",a); printf("%s",a); return 0; } 정수와 문자를 받을 때와는 달리 char에 받을 문자열의 개수를 지정해 주고, scanf로 데이터를 저장할때 레퍼런스기호를 붙이지 않는 것이 특징입니다. 빈칸을 포함한 문장을 받을 때는 fgets 함수를 사용합니다. #include int main() { char data[2001]; fgets(data, 2000, stdin); printf("%s",data); return 0; } 다음은 실수를 받아서 정수부와 소수점.. 2020. 9. 13.
정수나 문자 입력받아 출력하는 방법 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 정수나 문자를 받아 출력하는 방법에 대해서 알아보겠습니다. 우선 정수를 입력받아 출력하는 방법입니다. #include int main() { int n; scanf("%d", &n); printf("%d", n); return 0; } scanf 함수는 정수를 입력받아 저장하는 역활을 합니다. 숫자를 받을때는 %d를 사용하고, 저장할때는 &n 형식으로 사용해서 값을 저장하고, printf 함수를 사용해서 n을 출력합니다. 다음은 문자를 입력받아 출력하는 코드입니다. #include int main() { char x; scanf("%c",&x); printf("%c",x); return 0; } 문자를 받을때는 %c를 사용합니다. 다음은 실수를 입력받아 출력하는 코.. 2020. 9. 12.
C 프로그래밍 기본적인 입출력 하는 방법 | C 안녕하세요. 혀코입니다. 이번 시간에는 C 프로그래밍으로 기본적인 입출력을 하는 방법에 대해서 알아보겠습니다. # Hello World 출력하기 #include int main(void) { printf("Hello World\n"); return 0; } 프로그래밍의 시작은 언제나 그렇듯이 Hello World 로 시작합니다. #include 부분은 라이브러리를 추가시키는 부분이고, stdio.h는 standard input ouput의 약자로 printf 함수를 포함하고 있습니다. 그리고 입력은 void로 받지 않고, 리턴형은 int형입니다. 그리고 \n은 줄바꿈 기호로 줄을 바꿀때 사용합니다. # 기호의 종류 기호 출력 \n 줄바꿈 \t 탭 \\ \ \' ' \" " %% % # 입력을 하고 바로 .. 2020. 9. 11.
쌀 배달 그리디 알고리즘 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 최적의 값을 찾는 그리디 알고리즘에 대해서 알아보겠습니다. 쌀을 n kg 주문을 받아서 배달을 해주는 프로그램을 만든다고 가정해 보겠습니다. 쌀을 담은 포대가 5kg, 3kg 밖에 없을때, 최소한의 개수로 배달을 할 수 있게 최적의 개수를 찾는 알고리즘이 그리디 알고리즘 입니다. 만약 18kg을 주문받았다고 했을 때, 5kg 세개와 3kg 하나 이렇게 4개를 배달하면 되고, 6kg을 주문받았다고 했을 때는 3kg 2개를 배달하면 되고, 최적의 값을 찾지 못했을 때는 -1이 출력이 되어야 합니다. 우선, 가장 큰 값으로 n을 나눠줘야 합니다. 만약 나머지가 발생되면, n에서 작은값을 한번 빼주고 작은값을 뺀 값에서 다시 큰 값으로 n을 나눠주고 나머지가 남는지 확인해.. 2020. 9. 11.
printf 함수를 사용해서 hello를 출력하는 방법 | printf | #1 | C++ 안녕하세요. 혀코입니다. 이번 시간에는 printf 함수를 사용해서 hello를 출력하는 방법에 대해서 알아보겠습니다. printf 함수를 사용해서 hello를 출력하는 방법은 다음과 같습니다. #include int main() { printf("Hello"); return 0; } printf 함수를 사용하지 않고 hello를 출력하는 방법은 다음과 같습니다. #include int main() { std::cout 2020. 9. 11.