전체 글 183

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

visual studio scanf 오류 해결 방법 5가지 - 공부하는 도비

visual studio를 사용하다 보면, 다른 컴파일러에서 잘 사용하던 scanf 함수에 오류가 있다고 하는 경우가 있습니다. 간단하게 저 오류에 대해서 설명하면, scanf 는 안전하지 않은 함수이니 다른 조치를 취하여라..! 요런 뜻입니다. 해결 방법은 총 5가지가 있습니다. 1. scanf_s 사용 가장 간단한 방법으로 scanf에다가 _s 를 추가로 적어주면 됩니다. 하지만, 비쥬얼에서 scanf_s로 작성한 코드르 다른 컴파일러에다가 쓰면 오류가 나니 추천하는 방법은 아닙니다. #include int main() { int a; scanf_s("%d", &a); return 0; } 2. #define _CRT_SECURE_NO_WARNINGS 사용 코드 작성 시 가장 윗부분에 #define ..

C Programming 2022.09.30

Merge Sort - 공부하는 도비

https://en.wikipedia.org/wiki/Merge_sort Merge sort - Wikipedia From Wikipedia, the free encyclopedia Jump to navigation Jump to search Divide and conquer-based sorting algorithm In computer science, merge sort (also commonly spelled as mergesort) is an efficient, general-purpose, and comparison-based sorting algorithm en.wikipedia.org 합병 또는 병합 정렬은 분할 정복 알고리즘 중 하나이다. 자세한 내용은 위의 위키피디아의 정의를 참고하면 될..

Basic IT Knowledge 2022.08.06

Bubble Sort - 공부하는 도비

Oblivious Sort : the sequence of comparisons is independent of the input 버블 정렬은 입력된 데이터와 관계없이(oblivious sort) 입력 시퀀스를 오름차순으로 정렬하는 자료구조이다. n (= 5) 개의 데이터가 들어왔을 때, 정렬 방법은 아래와 같다. * Step 1 * Step 2 * Step 3 * Step 4 (n-1) + (n-2) + ... 1번 수행하기 때문에 총 n (n-1) / 2 번을 수행한다. 따라서, 시간 복잡도 상에선 O(n^2)이 소요된다. (간단히 작성한 파이썬 코드) import random def bubble(start_list): length = len(start_list) for i in range(0, le..

Basic IT Knowledge 2022.08.06

Slideshare에서 PPT(files) 무료로 다운 받기 - 공부하는 도비

오늘은 Slideshare 홈페이지https://www.slideshare.net/ 에서 무료로 파일을 다운로드하는 법에 대해 소개해볼까 한다.  (회원 가입 없이) 그럴 때 사용하는 홈페이지는 아래와 같다.  https://downloader.la/slideshare-downloader.html SlideShare Downloader - Downloader.laDownload Shutterstock photos for free. Download Nowdownloader.la 사용법은 굉장히 간단합니다.우선, Slideshare에서 원하는 ppt를 선택 후, 공유 버튼을 통해 해당 파일의 URL을 가져와야 합니다.  1. 원하는 ppt 검색 2. URL 복사3. https://downloader.la/s..

Basic IT Knowledge 2022.07.22