본문 바로가기

C C++166

[C/C++] 거듭제곱 함수 만들기 거듭제곱 함수 만들기 C/C++ 거듭제곱 함수 만드는 방법에 대해 알아 볼 것임. 우선 C/C++에서는 pow라는 함수를 통해 거듭 제곱을 사용할 수 있는 함수를 제공하고 있음. 그런데 왜 만들어서 쓰냐고? 그건 pow 함수 반환형이 float, double, long double이고, 인자도 각각 float, double, long double이어야 하기 때문임. 물론 형변환해서 int 정수형으로 쓸 수 있을 텐데, 문제 풀 때 형변환하면서 풀기는 찝찝해서 만들어 쓰는 것임. 나중에 좀 적응하면 pow를 쓸 지도. 제일 간단한 방법은 아래 방법인 듯. #include int square(int a, int b) { int res=1; for (int i=0; i 2022. 7. 16.
[C/C++] 정수 자릿수 세기 정수 자릿수 세는 방법을 알아보도록 하겠음. C/C++에서 딱히 함수로 자릿수를 세는 함수는 없는 것 같고, 기본 for문이나 while문을 통해 함수로 구현해야 함. 여러 방법이 있지만 아래 방법이 제일 간단한 것 같음. 정수 자릿수 세기 #include int main() { int num; int count = 0; scanf("%d", &num); while(num>0) { num = num/10; count++; } printf("%d", count); return 0; } - num으로 10씩 나눠서 다시 덮어 씀. 자릿수 낮추는 것임. - count (자릿수 세는 변수)가 1씩 올라감. - 마지막 자릿수에서 10으로 나누면 num이 0이 되는 것을 이용하는 것임. 예를 들어, 3/10은 0이.. 2022. 7. 16.
[C/C++] 로또의 최고 순위와 최저 순위 (Lv1) 문제 풀이 이번 문제는 아래 3가지 포인트가 있습니다. 1) 배열끼리의 비교하여 동일한 값이 몇 개인지 확인 => for문을 2번 써서 O(N^2)의 시간 복잡도를 가졌지만, 필요한 경우 각각 정렬하여 인덱스별로 동일한지 확인하는 방식이 빠를 것 같다. 2) 배열에 0이 몇개인지 확인 3) 동일한 값 + 0의 개수로 최고 순위 구하기, 동일한 값으로 최저 순위 구하기 => 순위를 구할 때 순위를 미리 배열(int rank[7])에 저장 해 둬서 인덱스만 참조하면 등수를 불러올 수 있도록 하였다. 소스코드 #include #include #include // lottos_len은 배열 lottos의 길이입니다. // win_nums_len은 배열 win_nums의 길이입니다. int* solution(in.. 2022. 7. 10.
C언어 백준 9012번 괄호 문제 풀이 (의 개수와 )의 개수를 세면서 점수처럼 (일 때 +1, )일 때 -1을 합니다. 이 때 최종값이 0이면 YES입니다. 단, ())와 같이 음수가 되는 경우 for문을 멈추고 NO를 출력합니다. YES NO 판단은 배열 마지막 자리일 때 수행합니다. 소스코드 #include #include #include int main(){ int T; scanf("%d",&T); for(int i = 0; i 2022. 7. 10.