목록C언어 (9)
안 쓰던 블로그
보통 rand()함수의 범위를 지정할 때 rand() % n : 0~n-1사이의 수 rand() % n + 1 : 1~n사이의 수 라고 많이 배우는데 정확히는 rand() % n + a 는 0+a ~ n-1+a 범위를 갖는다 10~20까지의 난수를 생성하겠다고 rand()%21+10을 하면 실제로는 10~30 범위를 갖는다는 의미
1. 다음 프로그램의 실행결과를 예측해 보시오 # include void fun(int x) { x = 30; } int main() { int y = 20; fun(y); printf("%d", y); return 0; } 더보기 답: 20 값에 의한 호출로 main안의 y변수 값은 바뀌지 않는다 2. 다음 프로그램의 실행결과를 예측해 보시오 # include void fun(int* ptr) { *ptr = 30; } int main() { int y = 20; fun(&y); printf("%d", y); return 0; } 더보기 답: 30 주소에 의한 호출로 main안의 y변수 값이 바뀐다 3. 다음 프로그램의 실행결과를 예측해 보시오 #include int main() { int* ptr; ..
단순 구현 어떤 알고리즘을 써서 문제를 풀 때도 구현이라고 하지만 여기서는 말 그대로 '문제를 읽고, 문제 자체를 구현'하는 단순 구현 문제를 의미합니다 단순 구현 문제는 보통 문제에 답이 있는 경우가 많으며, 문제를 읽고 가장 단순하게 생각해서 푸는 문제들도 단순 구현에 속합니다. 이렇게 단순 구현 문제들을 풀어둔다면 나중에 더 어려운 문제를 접하더라도, 문제를 단순하게 푸는 방법을 생각한다->시간이나 메모리를 더 줄일려면 어떻게 해야되지? 어떤 알고리즘을 써야되지? 이런 식으로 생각을 넓혀갈 수 있습니다. 단순 구현 문제는 간단히 풀리는 경우가 많으므로 문제풀이 공부에 회의감이 들거나 자존감이 낮아졌을 때, 재미로 풀면서 다시 공부하고자 하는 의지를 충전 할 수 있습니다. 먼저 문제만 보고 풀어본다-..
수학 수학2에서는 수학1에서 다뤘던 내용을 기반으로 조금 더 응용하는 문제를 다뤄보겠습니다. 수학1 게시글(https://foxtrotin.tistory.com/95)을 보고 오면 도움이 되실 겁니다. 1. 나머지 연산 나머지 연산을 쓰는 유형에는 몇 가지가 있습니다. 나머지의 값이 필요할 때, 특정 수의 배수인지 판별, 짝수인지 홀수인지 판별, 몇 개의 수를 계속 돌리고 싶을 때, 너무 큰 수가 정답일 때 나머지 연산 후 정답을 출력할 때 등등.. 여기서는 몇 개의 수를 계속 돌리고 싶은 경우 어떻게 해야 하는지 알아보겠습니다. #include int main(){ int a[3] = { 1,2,3 }; for (int i = 0; i < 6; i++) { printf("%d ", a[i % 3]); ..
수학 입출력 글(https://foxtrotin.tistory.com/90)에서 알고리즘 문제풀이의 과정을 (1)문제를 읽고 (2)입력을 받아서 (3)계산하고 (4)결과를 출력한다 라고 했었습니다. 하지만 엄밀히 따지면 이 과정은 전체 과정 중 ‘구현’ 부분에 해당합니다. 그러면 ‘구현’ 이전에 해야 하는 과정은 또 뭐가 있을까요? 바로 문제를 해결할 방법을 생각하는 것입니다. 위에 네 단계에서는 (1)과 (2) 사이에 들어가는 과정이겠네요. 아무리 뛰어난 코딩 실력이 있어도 어떻게 풀지 모른다면 코딩 실력은 무의미해질 것입니다. 그래서 ‘문제 해결 능력’이 보통 문제 풀이에서 가장 중요한 능력으로 여겨집니다. 이번 주에는 우리가 잘 알고 있는 수학 몇 가지를 다루면서 문제를 어떻게 해결하는지, 어떻게 ..
문제 풀 때마다 맨날 헷갈려서 정리했음 1. 일반 배열 내림차순 정렬 #include #include using namespace std; int n, a[10]; bool compare2(const int&x, const int&y) { return x > y; } int main() { scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } sort(a, a + n, compare2); for (int i = 0; i < n; i++) { printf("%d\n", a[i]); } } 2. vector 오름차순 정렬 #include #include #include using namespace std; int n; vector a(5)..
배열 C언어 자료형 중 int, double 등과 달리 char은 문자를 표현하는 변수입니다. char형은 독립적으로 이용되기도 하지만 문자열을 조작할 수 있는 배열로도 많이 이용됩니다. 배열은 '변수의 집합'으로, 여러 개의 데이터를 동시에 저장하고 조작할 수 있습니다. 배열은 선언 방식에 따라 1차원이나 2, 3차원 등의 다차원 배열로 나누어집니다. 1차원 배열로 예를 들자면, char a[5]; 이렇게 선언하면 a변수는 5문자를 담을 수 있는 문자열 변수가 됩니다. 이외에도 int a[3]; //정수형 변수 3개를 담을 수 있는 배열 double a[33]; //부동소수형 변수 33개를 담을 수 있는 배열 등이 있습니다. 1. 1차원 배열 #include int main() { char a[6] =..