Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 |
29 | 30 | 31 |
Tags
- HTML
- Python
- 드림핵
- 숙명여자대학교 정보보안동아리
- 머신러닝
- lob
- Sookmyung Information Security Study
- WarGame
- hackctf
- hackerrank
- siss
- 풀이
- c
- C언어
- 숙명여자대학교 정보보안 동아리
- 생활코딩
- 백준
- CSS
- 자료구조 복습
- 파이썬
- 웹페이지 만들기
- 기계학습
- Javascript
- PHP 웹페이지 만들기
- The Loard of BOF
- BOJ Python
- XSS Game
- BOJ
- SWEA
- c++
Archives
- Today
- Total
혜랑's STORY
[여름방학 3주차 C과제] 본문
#SWEA 2005번 : 파스칼의 삼각형
- 실행결과
- 풀이
#include <stdio.h>
int f(int x, int y) {
if (x == 0 || y == 0 || x == y) { //x, y는 위치를 의미
return 1;
}
else {
return f(x - 1, y - 1) + f(x - 1, y); //각각 상위 왼쪽 좌표와 상위 오른쪽 좌표를 의미
}
}
int main() {
int T,num;
scanf_s("%d", &T);
for (int i = 1; i <= T; i++) {
scanf_s("%d", &num);
printf("#%d\n", i);
for (int j = 0; j < num; j++) {
for (int n = 0; n <= j; n++) {
printf("%d ", f(j, n));
}
printf("\n");
}
printf("\n");
}
}
[파스칼의 삼각형] : 수학에서 이항계수를 삼각형 모양의 기하학적 형태로 배열한 것.
[규칙]
처음 두 줄은 가장자리의 수가 '0'이라 생각하여 0과 1을 더한 1이 그대로 내려오게 된다.(가장자리에 수가 없는 다른 경우에도 적용된다.) 파스칼의 삼각형 3열부터는 상위 열의 2개 숫자를 더하여 만든다.
이 규칙을 이용하여 3번째 항부터 숫자들을 구할 때 상위 2개의 좌표를 더하여 그 값을 구할 수 있다. f(x-1, y-1) + f(x-1, y)는 각 상위 열의 왼쪽 좌표값과 오른쪽 좌표값인 것을 이용하여 재귀함수를 이용하였다.
#SWEA 1966번 : 숫자를 정렬하자
- 실행결과
- 풀이
#include <stdio.h>
int main() {
int T, n, temp;
scanf_s("%d", &T);
for (int i = 1; i <= T; i++) {
scanf_s("%d", &n);
//n만큼의 배열 생성
int* numList = (int*)malloc(sizeof(int) * n);
for (int j = 0; j < n; j++) {
scanf_s("%d", &numList[j]);
}
//버블 정렬 이용
for (int j = 0; j < n; j++) {
for (int k = 0; k < n - 1; k++) {
if (numList[k] > numList[k + 1]) {
temp = numList[k];
numList[k] = numList[k + 1];
numList[k + 1] = temp;
}
}
}
printf("#%d\ ", i);
for (int j = 0; j < n; j++) {
printf("%d ", numList[j]);
}
}
}
[버블 정렬] : 배열 내의 두개의 인접한 index를 비교하여 더 큰 숫자를 뒤로 보내 차곡차곡 쌓아 정렬하는 방법
버블 정렬을 구현하기 위하여 안쪽 for문에서 [0]과 [1]의 값을 비교하여 더 큰 값을 뒤로 보내주고, [1]과 [2]의 값을 비교하여 더 큰 값을 보내주는 식으로 계속하여 두 값을 비교하여 1차 정렬을 한다. 바깥쪽 for문이 실행되면 이 과정이 한 번 더 반복하며 정렬을 완료한다.
'2020 SISS 21기 활동 > 여름방학 C언어' 카테고리의 다른 글
[여름방학 6주차 C과제] (0) | 2020.08.15 |
---|---|
[여름방학 5주차 C과제] (0) | 2020.08.07 |
[여름방학 4주차 C과제] (0) | 2020.08.02 |
[여름방학 2주차 C과제] (0) | 2020.07.15 |
[여름방학 1주차 C과제] (0) | 2020.07.09 |