전체 글 188

C언어 피보나치 수열 출력하기 - 공부하는 도비

2022.10.28 - [C언어] - [C언어] 재귀 함수를 사용한 피보나치 수열 - 공부하는 도비 [C언어] 재귀 함수를 사용한 피보나치 수열 - 공부하는 도비 https://ko.wikipedia.org/wiki/%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98_%EC%88%98 피보나치 수 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 피보나치 수를 이용한 사각형 채우기 수학에서.. yang-wistory1009.tistory.com 저번 피드에서 재귀 함수를 이용하여, 입력한 수에 대한 피보나치 수를 계산해보았습니다. 오늘은 재귀함수 대신, 배열을 사용한 피보나치 수열 계산에 대해 알아보려고 합니다. 입력받은 수의 길이 만큼 새로운 배열을 만들고, 그 배열 ..

C Programming 2022.10.31

C언어 재귀 함수를 사용한 피보나치 수열 - 공부하는 도비

https://ko.wikipedia.org/wiki/%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98_%EC%88%98 피보나치 수 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 피보나치 수를 이용한 사각형 채우기 수학에서 피보나치 수(영어: Fibonacci numbers)는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다. ko.wikipedia.org 오늘은 임의의 양의 정수 n을 입력하면 n번째 피보나치수열의 값을 출력하는 프로그램을 재귀 함수를 사용하여 구해보도록 하겠습니다. #include int fibo(int num) { if (num

C Programming 2022.10.28

버블 정렬 (오름차순 정렬) - 공부하는 도비

파이썬엔 sort라는 좋은 함수가 있어, 굳이 정렬 함수를 작성하진 않아도 된다. 하지만, 정리해두면 누군가에겐 도움이 되지 않을까해서 글을 쓰고 있다. 우선 sort 함수를 쓰면 정말 간단하게 배열을 정렬할 수 있다. 자세한 내용은 아래 링크를 활용하면 좋을 듯 합니다. 2020.12.23 - [파이썬/파이썬 이론] - [파이썬] 정렬하기 list.sort(), sorted(), 키 함수 사용 - 공부하는 도비 [파이썬] 정렬하기 list.sort(), sorted(), 키 함수 사용 - 공부하는 도비 오늘은 파이썬 정렬함수에 대해 알아보겠습니다.! 파이썬에서 정렬가능 함수는 list.sort()함수와 sorted()함수 두가지 있습니다. * list.sort() 와 sorted() 함수 차이 list..

Python/Python Basic 2022.10.28

C언어 포인터를 이용하여 배열의 모든 원소 역순 출력 함수 - 공부하는 도비

#include void ReverseArray(int* ptr, int len) { for(int i = len-1; i >= 0; i--) { printf("%d ", *(ptr + i)); } } int main(void) { int score[] = { 100, 78, 65, 32, 89 }; int array_length =sizeof(score) /sizeof(score[0]); ReverseArray(score, array_length); return 0; } ReverseArray 함수 결과를 main으로 따로 주지 않아도 되니 void로 선언해주고, 배열 score의 포인터 변수로 *ptr로 받습니다. 저런식으로 배열을 포인터로 받으면 배열의 0번째 방 주소를 *ptr로 가리키게 됩니다...

C Programming 2022.10.28

양의 정수 값을 입력 받아 입력한 정수까지의 소수를 구하는 함수 작성 - 공부하는 도비

소수는 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수다. 예를 들어, 7은 1×7 또는 7×1로 수를 곱한 결과를 적는 유일한 방법이 그 수 자신을 포함하기 때문에 7은 소수이다. 따라서, 1과 자기자신을 제외한 수로 나눠진다면 그 수는 소수가 아니다. 이 점을 이용하여 소수를 계산해보려고 한다. #include void prime(int a) { for(int i = 1; i

C Programming 2022.10.28

파이썬 y축 중간 생략(broken yaxis) + 더블 y축(twinx) 그래프 그리기 - 공부하는 도비

지난 피드에서 파이썬 y축 중간 생략 그래프와 파이썬 더블 y축 그래프를 그려보았습니다. 각각 내용에 대해서는 아래 링크를 참고해주세요. 오늘은 이 두 가지를 합친 그래프를 그려볼게요!. 2022.10.20 - [파이썬/파이썬 시각화 (colab)] - [파이썬 시각화] 파이썬 y축 중간 생략 그래프 그리기 - 공부하는 도비 [파이썬 시각화] 파이썬 y축 중간 생략 그래프 그리기 - 공부하는 도비 y축 중간 생략 그래프는 그래프를 그릴 때 각 항목들 간 데이터 크기 차이가 많이 날 때 쓰는 방식으로 이 방법을 사용하면, 완성된 그래프의 퀄리티도 좋아지고 확실히 눈에 잘 들어오게 됩니다 yang-wistory1009.tistory.com 2022.10.22 - [파이썬/파이썬 시각화 (colab)] - [..

파이썬 더블 y축 그래프 그리기 (plt.twinx()) - 공부하는 도비

오늘은 파이썬으로 y축 두 개를 가진 그래프를 그려볼게요. 그냥 하나의 y축을 가진 그래프는 쉽게 그릴 수 있어요. 왼쪽 y축을 ax_1으로 두고, 오른쪽 y축을 ax_2로 설정했습니다. import pandas as pd import matplotlib.pyplot as plt import seaborn as sns # 그래프 설정 sns.set(rc={"figure.figsize":(8,6)}) plt.rcParams['lines.linewidth'] = 4.0 plt.rcParams['boxplot.flierprops.markersize'] = 10 sns.set_style("white") ax_1 = sns.barplot() plt.show() 더블 y축을 하는 방법은, plt.twinx()을 사..

파이썬 y축 중간 생략 그래프 (broken yaxis) 그리기 - 공부하는 도비

y축 중간 생략 그래프는 그래프를 그릴 때 각 항목들 간 데이터 크기 차이가 많이 날 때 쓰는 방식으로 이 방법을 사용하면, 완성된 그래프의 퀄리티도 좋아지고 확실히 눈에 잘 들어오게 됩니다. 아래 그래프는 같은 데이터를 사용하여 두 가지 버전의 그래프를 그린 결과입니다. y축의 scale이 log 임에도 불구하고, A의 항목이 다른 항목에 비해 데이터 크기가 매우 크다는 걸 알 수 있습니다. 만약에 scale이 log가 아니라면, B와 C 항목은 보이지도 않습니다. ㅎㅎ 파이썬에서 y축 중간 생략 그래프를 그리기 위해선, subplot을 활용합니다. 즉, 두가지 그래프에 각각 그래프를 그려두고, 각 subplot의 ylim을 조정하면서 마치 중간그래프가 생략된 거처럼 만드는 거죠! 아래 코드에서는 su..

Odyssey 스킨에 글 수정, 삭제 버튼 넣기 - 공부하는 도비

최근 티스토리 스킨을 바꾸었다. 예전에 쓰던 스킨은 피드에 수정, 삭제 버튼이 기본적으로 있었는데, Odyssey 스킨엔 없었다. 있다 없으니 굉장히 불편해서 추가하는 방법을 정리해두려고 한다. 1. 관리자 페이지 → 스킨 편집 → html 편집 2. ctrl+F로 이미지 검색 3. 하늘색 박스 부분에 코드 삽입 · 수정 · 삭제 4. 코드 블럭 삽입 후 적용 위 그림 처럼 수정, 삭제 버튼이 잘 들어간 걸 볼 수 있습니다. 글자색을 바꾸고 싶으면, 아래 사이트를 참고해서 코드 부분에 color 내용을 수정하시면 됩니다. https://www.w3schools.com/colors/colors_names.asp HTML Color Names W3Schools offers free online tutoria..

Basic IT Knowledge 2022.10.14

C언어 포인터 기초 (필요성) - 공부하는 도비

저번 피드에서 C언어의 포인터에 대해 간단히 알아보았습니다. 2022.10.13 - [C언어] - [C언어] 포인터 기초 (선언) - 공부하는 도비 [C언어] 포인터 기초 (선언) - 공부하는 도비 오늘은 모두가 어려워하는 포인터에 대해서 알아볼게요. C언어를 공부하면서 학생들이 손 놓는 부분이 포인터를 배울 때라고 생각해요. 그래서 기초부터 정리해두려고 합니다. 우리가 변수를 yang-wistory1009.tistory.com 오늘은 포인터가 대체 왜 필요한지 설명해보려고 합니다. 우선 아래 두 가지 코드를 비교해볼게요. 두 코드 모두 처음 선언한 value 변수에 100을 더하는 코드이고, 차이는 함수의 인자에 값을 넘겨주는 call by value 함수이냐 아니면 주소 값을 넘겨주는 call by ..

C Programming 2022.10.13

C언어 포인터 기초 (선언) - 공부하는 도비

오늘은 모두가 어려워하는 포인터에 대해서 알아볼게요. C언어를 공부하면서 학생들이 손 놓는 부분이 포인터를 배울 때라고 생각해요. 그래서 기초부터 정리해두려고 합니다. 우리가 변수를 선언하면, 아래 그림처럼 메모리의 특정한 장소(주소)에 값이 저장됩니다. 포인터란? "특정 데이터가 저장된 메모리의 주소를 저장하는 변수" 위의 예시에 따르면, 포인터는 위의 변수 c, i, pi의 주소를 저장하는 변수라고 정의할 수 있습니다. ▶ 포인터 변수 선언 - 포인터 변수 선언을 위해서는 간접 연산자 *를 변수 앞에 사용 합니다. - 각 데이터 형에 따라 아래와 같이 포인터 변수를 선언 할 수 있습니다. 위 예시에 대한 포인터를 선언해볼께요.! & 기호가 주소를 뜻하니, &c를 출력하면 c의 주소 값이 출력되고, c..

C Programming 2022.10.13

삼각비를 활용한 벡터의 합 구하기 - 공부하는 도비

오늘은 삼각비를 활용하여 벡터의 합을 구해보려고 합니다. 삼각비에 대한 자세한 내용은 아래 링크를 참고하시면 될 거 같습니다. 2022.10.07 - [수학] - [수학] 직각 삼각형의 삼각비 - 공부하는 도비 2022.10.07 - [수학] - [수학] 일반각 - 공부하는 도비 삼각비는 좌표 평면 상에서도 정의가 가능합니다. 아래 그림 처럼 좌표 평면 상에 원과 원의 반지름, 각에 해당하는 세타를 알면 삼각비를 정의할 수 있습니다. 이러한 특성을 가지고, 좌표 평면 상의 벡터들의 합을 구해보겠습니다. 2차원에서 정의된 벡터의 합은 x, y 끼리 각각 더해주면 됩니다. 각 벡터를 아래 처럼 정의할 수 있고, 간단히 더해주면 벡터의 합을 구할 수 있습니다.

Mathematics 2022.10.07

일반각 - 공부하는 도비

저번 피드에서 직각 삼각형의 삼각비에 대해 알아보았습니다. 삼각비는 90도를 제외한 다른 각에 대하여 세 변의 길이 중 두 변의 길이 간의 비례 관계를 나타내는 값을 말합니다. 자세한 내용은 아래 링크를 확인해주세요. 2022.10.07 - [수학] - [수학] 직각 삼각형의 삼각비 - 공부하는 도비 [수학] 직각 삼각형의 삼각비 - 공부하는 도비 직각 삼각형의 삼각비란? 직각이 아닌 각에 대하여 세 변의 길이 중 두 변의 길이 간의 비례관계를 나타내는 값을 의미합니다. 널리 알려진 세 가지 삼각비는 사인(sin), 코사인(cos), 그리고 탄젠 yang-wistory1009.tistory.com 삼각비는 90도를 제외한 각에 대하여 정의하기 때문에, 기준이 되는 각 A와 B는 0보다 크고, 90도보다 ..

Mathematics 2022.10.07

직각 삼각형의 삼각비 - 공부하는 도비

직각 삼각형의 삼각비란? 직각이 아닌 각에 대하여 세 변의 길이 중 두 변의 길이 간의 비례관계를 나타내는 값을 의미합니다. 널리 알려진 세 가지 삼각비는 사인(sin), 코사인(cos), 그리고 탄젠트(tan)입니다. 일반적으로 비례관계는 분수로 나타내고, 이들을 예각 A에 대하여 아래에 정의해보았습니다. 예제를 통해서 삼각비를 알아보도록 합시다. 1. △ABC * 답 2. △DEF * 답 3. 아래 삼각형에서, a / c와 같은 것은? * 답

Mathematics 2022.10.07

C언어 행렬 곱셈 - 공부하는 도비

아래와 같은 두 행렬의 곱을 계산해보도록 하자. 우선, 행렬의 곱이 형성되기 위해선, 1번 행렬의 열 개수와 2번 행렬의 행 개수가 동일해야 한다. 예제에서는, mat1 = (2, 3) 행렬, mat2 = (3, 2) 행렬이기 때문에 곱 결과는 (2, 2) 행렬이 만들어지게 된다. 행렬의 자세한 내용은 아래 위키를 참고하면 좋을 거 같다. https://ko.wikipedia.org/wiki/%ED%96%89%EB%A0%AC_%EA%B3%B1%EC%85%88 행렬 곱셈 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 행렬 곱셈을 위해선 첫째 행렬의 열 갯수와 둘째 행렬의 행 갯수가 동일해야한다. 곱셈의 결과 새롭게 만들어진 행렬은 첫째 행렬의 행 갯수와 둘째 행렬의 열 ko.wiki..

C Programming 2022.10.03

C언어 2차원 배열의 합 - 공부하는 도비

3 X 3 배열이 아래 그림처럼 2차원 배열로 선언되어있고, 이 배열의 합을 구해보려고 한다. 2차원 배열로 각 행렬을 선언을 해주고, 연산 후 값을 result 배열에 넣어주려고 한다. #include int main() { int mat1[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; int mat2[3][3] = { {1, 0, 8}, {2, 1, 0}, {5, 7, 2} }; int mat3[3][3] = { {3, 4, 7}, {2, 5, 8}, {1, 3, 5} }; int result[3][3] = {{0}}; } 두 가지 방법이 있다. 1. 단일 for문 for (int i = 0; i < 3; i ++) { result[i][0] = mat1[i][0] ..

C Programming 2022.10.03

C언어 공백 포함 문자열 입력 받기 (scanf, gets) - 공부하는 도비

C를 사용하여 문자열을 입력받을 때, 무심코 공백이 포함된 문장을 입력하다가 엔터나 스페이스바가 입력된 기준으로 그 앞까지만 배열에 저장되는 걸 종종 보게 된다. 이러한 코드를 실행시켜 다음과 같이 입력을 하면, 원하는 결과가 출력되지 않는 걸 확인할 수 있다. 따라서, 우리는 배열에 공백을 포함하여 입력받고 싶을 땐 아래와 같은 2가지 방법을 사용하면 된다. 1. scanf 사용 시 [^\n] 추가 2. gets 함수 사용 gets 함수는 기본적으로 공백을 포함해서 입력을 받는 함수이다. 물론 안정성 때문에 gets 함수 사용이 권장되지는 않으니 1번 방법을 사용하여, 공백을 포함한 문자열을 입력받으시면 됩니다.

C Programming 2022.10.03

C언어 입력한 년도에 따른 달력 출력 - 공부하는 도비

오늘은 입력한 년도에 따른 달력을 출력해보겠습니다. 달력 출력하기를 위해선, 윤년/평년 계산과 1월 1일이 무슨 요일로 시작되는지 알아야 합니다. 코드는 다음과 같습니다. - 함수 LeapYear은 윤년/ 평년 판단 함수입니다. - GetStart는 입력된 년도의 1월 1일이 무슨 요일로 시작되는지 알아내는 함수입니다. - PrintMonth는 달력을 출력하는 함수입니다. #define _CRT_SECURE_NO_WARNINGS #include int LeapYear(int year); void PrintMonth(int check, int start_point); int GetStart(int year); int main() { int input_year; scanf("%d", &input_year);..

C Programming 2022.09.30