Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

5주차 #21

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion 과제/inq_atoi.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
- 테스트 목적으로 사용하는 것은 허용하나, 제출 파일 및 함수 구현 과정에서는 절대 포함할 수 없습니다.
- 함정이 있어요!
- **정수 최댓값, 최솟값 리턴을 어떻게 할지 고심해보세요.**
- INT_MAX를 초과하는 값이나, INT_MIN 미만의 값이 input될 경우, overflow와 underflow를 자연스럽게 처리해야 합니다.
- (사용하지는 않겠지만) malloc을 사용할 경우, Memory Leak은 허용하지 않습니다.
- 전역변수 사용이 금지됩니다. 함수 분리, 메서드 분리는 지역 변수를 이용하여 parameter로 처리하세요.
- 전체 함수 및 메서드는 `int inq_atoi(char *str)`함수를 포함해 5개 이하로 작성하세요.
Expand Down
27 changes: 27 additions & 0 deletions 이상현/Week 5/Week5_1475.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#include<stdio.h>

int main()
{
int a, sum, max;
int d[10] = {0};
scanf("%d", &a);
while (a > 0)
{
sum = a % 10;
d[sum]++;
a /= 10;
}

max = (d[6] + d[9] + 1) / 2;

for (int i = 0; i < 10; i++)
{
if (i == 6 || i == 9)
continue;
else if (d[i] > max)
{
max = d[i];
}
}
printf("%d",max);
}
21 changes: 21 additions & 0 deletions 이상현/Week 5/Week5_2577.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#include<stdio.h>

int main()
{

int A, B, C, sum, res;
int a[10] = { 0 };
scanf("%d %d %d", &A, &B, &C);
sum = A * B * C;

while (sum >0) {
res = sum % 10;
a[res]++;
sum /= 10;
}
for (int i = 0; i < 10; i++)
{
printf("%d\n", a[i]);
}

}
52 changes: 52 additions & 0 deletions 이상현/Week 5/Week5_3273.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#include <stdio.h>
#include <stdlib.h>

int compare(const void* a, const void* b) {
return (*(int*)a - *(int*)b);
}

int countPairs(int* sequence, int n, int x) {
int count = 0;
int i = 0;
int j = n - 1;

while (i < j) {
if (sequence[i] + sequence[j] == x) {
count++;
i++;
j--;
}
else if (sequence[i] + sequence[j] < x) {
i++;
}
else {
j--;
}
}

return count;
}

int main() {
int n;
scanf("%d", &n);

int* sequence = (int*)malloc(n * sizeof(int));
if (sequence == NULL) {
return 1;
}

for (int i = 0; i < n; i++) {
scanf("%d", &sequence[i]);
}

int x;
scanf("%d", &x);
qsort(sequence, n, sizeof(int), compare);
int result = countPairs(sequence, n, x);
printf("%d\n", result);

free(sequence);

return 0;
}