본문 바로가기
  • 밥 하루하루

공돌이/C언어44

[프로그래머스/C언어] 두 수의 나눗셈 #include #include #include int solution(int num1, int num2) { double answer = 0; answer = (double) num1 / num2 * 1000; return answer; } -. double 형으로 변경하는 방법을 알아야 풀 수 있음. -. int, float, double 등을 공부 필요함. 2024. 2. 22.
[프로그래머스/C언어] 조건 문자열 #include #include #include // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요. int solution(const char* ineq, const char* eq, int n, int m) { int answer = 0; switch (*ineq){ case '': switch(*eq){ case '=': if(n >= m){ answer = 1; break; } else answer = 0; break; case '!': if(n > m){ answer = 1; break; } else answer = 0; break; } } return answer; } -. Switch 문을 사용해서 풀었음. -. 근데 너무 김. 다른 분들이 푼거.. 2023. 11. 27.
[프로그래머스/C언어] 순열 검사 -. 일단 arr 배열을 오름차순으로 한 다음, -1, -2, -3 ..을 빼서 0이 아니면 false를 나오게 구현했지만, 효율성 측면에서 다 실패함. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include #include #include // arr_len은 배열 arr의 길이입니다. bool solution(int arr[], size_t arr_len) { bool answer = true; for(int i = 0; i 2023. 3. 25.
[프로그래머스/C언어] 자릿수 더하기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include #include #include int solution(int n) { int answer = 0; int num = 0; while(1){ num = n % 10; n = n / 10; answer += num; // answer = answer + num if(n == 0){ // ex) 9 / 10 = 0 break; } } return answer; } Colored by Color Scripter cs -. 입력값 n을 10으로 나눴을 때 나머지는 각 자릿수를 구할 수 있음. -. while 문에서 나갈 때 조건은 마지막 자릿수를 10으로 나누면 0이 나옴. 그걸 이용해서 break로 나가면 됨. 2023. 3. 25.
[프로그래머스/C언어] 나머지 한 점 -. i, j에서 중복되지 않는 값을 구하기 위해 for문으로 일일이 체크해서 구하려 했는데 그건 비효율적이고 해서 다른 분이 푼 걸 참고함. 생각도 못했음. 아래와 같이 해서 중복이 되지 않는 값을 구해서 해보려 했었음. #include #include int main() { int arr[3] = { 4,4,10 }; int check[11] = {}; int dx; printf("size = %d\n", sizeof(arr) / sizeof(int)); for (int i = 0; i < sizeof(arr) / sizeof(int); i++) { dx = arr[i]; check[dx]++; } printf("중복 아닌 숫자: "); for (int i = 0; i < sizeof(check) /.. 2023. 3. 24.
[C언어] 오름차순, 내림차순 #include void swap(int* a, int* b) { int temp = *a; *a = *b; *b = temp; } int main() { int arr[7] = { 5, 39, 12, 40, 2, 50 ,4 }; int cnt = 0; printf("Before: "); for (int i = 0; i arr[j]) { swap(&arr[i], &arr[j]); /*int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;*/ }.. 2023. 3. 24.
[프로그래머스/C언어] 올바른 괄호 https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #include #include #include #include // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요. // ())((): 안되는 예시 bool solution(const char* s) { bool answer = true; int cnt = 0; if(s[0] == '('){ for(int i = 0; i < strlen(s); i+.. 2023. 3. 23.
[프로그래머스/C언어] 없는 숫자 더하기 #include #include #include // numbers_len은 배열 numbers의 길이입니다. int solution(int numbers[], size_t numbers_len) { int answer = -1; int sum = 0; int o_sum = 45; for(int i = 0; i < numbers_len; i++){ sum = sum + numbers[i]; } answer = o_sum - sum; return answer; } - 0 ~ 9부터 숫자를 더한 다음에 numbers 배열에 들어간 수를 합해서 빼면, 없는 숫자를 찾을 수 있음. 2023. 3. 21.
[프로그래머스/C언어] 음양 더하기 #include #include #include // absolutes_len은 배열 absolutes의 길이입니다. // signs_len은 배열 signs의 길이입니다. int solution(int absolutes[], size_t absolutes_len, bool signs[], size_t signs_len) { int answer = 0; // absouoltes 배열 안에 있는 숫자가 양수 인지 음수 인지 판단 // 판단은 signs에서 true, false로 판단 for(int i = 0; i < absolutes_len; i++){ if(signs[i] == true){ answer = answer + absolutes[i]; }else answer = answer - absolute.. 2023. 3. 18.