c++95

배열의 차원을 구하는 방법 C++ [ 강화버전 ] https://mawile.tistory.com/207 배열의 차원을 구하는 방법 C++ (강화버전) 안녕하세요!! 이번에는 저번에 배열의 차원의 찻수를 구하는 방법에 관하여 포스팅했습니다. 몇시간 더 삽질하면서, "벡터에 클래스가 들어와도 정상적으로 작동시킬수 없을까?"라는 생각이 들 mawile.tistory.com 우리는 흔히 배열의 크기를 구하고는 합니다. 예를들어서 이런식으로 말이죠.. int main() { int arr[5]; int size = sizeof(arr) / sizeof(arr[0]); } 하지만 ... 만약 아래 코드와 같은 5차원 배열이 존재할때, 이 배열의 찻수인 "5"를 프로그램에게 알리려면... 즉, n차원 배열이 있다고할때, 프로그램에게 그 n차원 배열.. 2021. 10. 11.
Softmax function 구현하기 C++ 머신러닝에서 어떠한 여러개의 값이 주어졌을때, 그 여러개의 값중에서 임의의로 고른값을 확률의 수치로써 사용하기위해서 고안된 함수입니다. 예를들어서, 다음과 같은 배열이 있다고할때... [ 2, 3, 5 ] 만약 여기서 "2"를 고를때 전체 배열의 합에서의 확률(차지하는 빈도)의 수치는 몇인가? 에 대한 답을 제시해주는것이 "Softmax function"입니다. 우선 소프트맥스함수는 아래와 같이 생겼습니다. 흠.. 의외로 엄청 심플하게 생겼습니다. 실제 C++코드로 옮기면 다음과 같습니다. #include #include #include // https://www.HostMath.com/Show.aspx?Code=f(sj)%20%3D%20%5Cfrac%7Be%5E%7Bsj%7D%7D%7B%5Csum_%7.. 2021. 10. 11.
행렬곱셈 이론및 실습 c++ 본 포스팅은 행렬곱셈(Matrix Multiplication)에 관한 이론및 c++기반의 실습내용을 포함하고 있습니다. 또한 개인적인 공부차원에서 작성한 글입니다. 참조및 도움 https://ko.wikipedia.org/wiki/%ED%96%89%EB%A0%AC_%EA%B3%B1%EC%85%88 행렬 곱셈 - 위키백과, 우리 모두의 백과사전 행렬 곱셈을 위해선 첫째 행렬의 열 갯수와 둘째 행렬의 행 갯수가 동일해야한다. 곱셈의 결과 새롭게 만들어진 행렬은 첫째 행렬의 행 갯수와 둘째 행렬의 열 갯수를 가진다. 행렬 곱셈(matrix mul ko.wikipedia.org http://mathurl.com/ mathURL mathurl.com 행렬 곱셈이란? 두 개의 행렬에서 한 개의 행렬을 만들어내는 이.. 2021. 10. 9.
이벤트 제어 c/c++ 다중 스레드환경에서 가끔 코루틴처럼 특정이벤트가 발생해야만 함수가 실행되는방법에 관하여 찾고계신가요..? velog에다가 다중스레드 환경에서 이벤트를 제어하는 여러가지 방법에 관하여 포스팅해놓았습니다. 참고해두셨으면 좋겠습니다. https://velog.io/@dpmawile/EventHandling 이벤트 제어 c/c++ 다중스레드환경에서 이벤트제어에 관한 여러가지 방법입니다. velog.io 2021. 9. 10.
삼각형 내부에 존재하는지 점인지 확인하는법 c++ 이번에는 삼각형을 이루는 세개의 꼭짓점을 통해서, 어느 한 꼭짓점 N이 해당 삼각형 내부에 존재하는지 확인하는 알고리즘입니다. 코드는 최대한 가독성을 높여서 만들었습니다. #include struct Coord { int x, y; }; void initialize() { std::cin.tie(0); std::cout.tie(0); std::ios_base::sync_with_stdio(0); } int calcTriangle(Coord A_TRIANGLE, Coord B_TRIANGLE, Coord C_TRIANGLE) { int result = std::abs((A_TRIANGLE.x * (B_TRIANGLE.y - C_TRIANGLE.y)) + (B_TRIANGLE.x * (C_TRIANGLE.y.. 2021. 8. 20.
소수점 반올림하는법 c++ 예를들어서, "0.00457"라는 수를 0.00460으로 반올림하고싶다. 그러면은 c++에서는 어떻게 해야할까..? 답은 간단하다. #include int main() { float fl = 0.00457f; std::cout 2021. 8. 14.
제곱, 제곱근 구현하기 우선은 제곱근은 바빌론방법을 사용하였고, 제곱은 dp를 사용했습니다. 사실 제곱을 일반적으로 구현하면, 시간복잡도가 O(n)이 되는데, 저가 사용한 방법은 dp입니다. 시간복잡도는 예를들어서, 처음 2의 2제곱을 하면 O(n)이고, 그다음은 2의 e제곱을 하면 시간복잡도는 O(n-e)가 됩니다. 그리고, 이미 제곱했었던 수라면 시간복잡도는 O(1)입니다. 먼저 바빌론방법을 이용한 제곱근을 구하는 함수입니다. #include double squareRoot(double n){ double x = n; double y = 1; double e = 0.000001; while(x - y > e){ x = (x + y) / 2; y = n / x; } return x; } int main() { std::cou.. 2021. 8. 13.
최단거리 경로탐색 프로그램 다운로드및 설명 velog에다가 벨만-포드 알고리즘을 이용한 단방향 그래프 최단거리 경로탐색 프로그램에 대한 글올렸습니다. C# winform으로 만들어서 프로그램도 공유중입니다! https://velog.io/@dpmawile/bellmanford-pathfinding 최소비용 경로탐색 : 알고리즘 노트 벨만-포드 알고리즘을 이용한 최단비용 경로탐색 알고리즘에 대한 개인적인 알고리즘노트입니다. velog.io 2021. 8. 5.
나눗셈 연산속도 최적화 C++ 개발환경 >> Devcpp 언어 >> C++17이상 운영체제 >> Windows10 home 💉개요 안녕하세요! 이번에는 나눗셈연산을 비트연산으로 바꾸는 방법들에 대하여 알아보겠습니다. 우선 왜 나눗셈연산을 비트연산으로 바꾸는건가? 나눗셈연산은 곱셈, 덧셈, 뺄셈, 비트연산속도보다 매우느립니다. 만약에 프로그램속도를 최적화하기 위해서는 비트연산으로 바꿔야합니다. 그래서 이번에는 비트연산으로 바꾸는 여러가지 방법에 대하여 알아보겠습니다. 💉참조 https://stackoverflow.com/questions/5558492/divide-by-10-using-bit-shifts Divide by 10 using bit shifts? Is it possible to divide an unsigned intege.. 2021. 8. 2.
계산기 만들기 c++ 계산기 만들기에 대한 내용, 벨로그에 포스팅했습니다. 티스토리 접은건아닙니다!! 벨로그가 뭔가 디자인이 깔끔해서 포스팅할맛나긴하네요! :D https://velog.io/@dpmawile/calculator 계산기 만들기 c++ 계산기 만들기 velog.io 2021. 7. 13.
17412 도시 왕복하기 1 [ 깔끔한 알고리즘 문제풀이 ] 문제 한번에 맞아서 기분좋은나머지 글써봅니다. 문제 풀러가기 17412번: 도시 왕복하기 1 첫째 줄에 두 정수 N(3 ≤ N ≤ 400), P(1 ≤ P ≤ 10,000)이 주어진다. 다음 P개의 줄에는 각 길이 연결하는 출발 도시와 도착 도시의 번호가 주어지며, 두 번호는 다르다. www.acmicpc.net 문제 난이도 플래티넘 IV 문제 유형 네트워크 유량 해법 이 문제는 난이도에 비해서 문제유형이 뭔지만 알면, 쉽게 풀리는문제입니다. 문제에서 범위가 1번도시부터 N번도시까지라고했지만, 어쨌든 우리가 최종적으로 원하는 최대유량및 결과값은 1번도시부터 2번도시로 가는 최대유량을 구해야합니다. 따라서 시작점을 1로하고 끝점을 2로 설정한다음 네트워크유량 알고리즘 돌려주면 됩니다. 그리고 정점들간의 드.. 2021. 7. 7.
윈도우 콘솔디버깅 ( C++ / 20 ) 개발환경 >> Visual Studio 2022 Preview 언어 >> C++20에서 정상작동확인 운영체제 >> Windows10 home 안녕하세요!! 혹시 윈도우 애플리케이션 개발해보신분들중에서, 도중에 변수값을 확인하고싶은데 확인하는부분을 따로 만들기 귀찮으신분계신가요?? 윈도우 애플리케이션개발을 하다보면, 콘솔과는다르게 문자열값이 아닌값을 확인하려면 귀찮게 그부분도 따로 구현했어야됩니다.. 이번에는 윈도우 애플리케이션환경에서 콘솔환경에서의 디버깅을 쉽게 하도록하는 라이브러리를 만들었습니다. 솔직히 디버깅이라는거는 그냥 부주제로 써본것이고, 윈도우애플레케이션환경에서도 콘솔에다가 c++ 스탠다드 라이브러리인 iostream에 포함된 std::cout을 마음껏 사용할수있는 라이브러리를 만들어왔습니다... 2021. 7. 4.
가변인자 프린트함수 ( c++23 ) 개발환경 >> Devcpp 언어 >> C++23 운영체제 >> Windows10 home 안녕하세요! 이번에 c++에서 새로나온 문법 concept아시나요?? 이번에 이것에 대해서 공부해보기위해서 만들어본 카테고리입니다. 그것과 동시에 SFINAE도 동시에 병행해서 공부해보려합니다. 그러면 오늘은 이를 이용한 가변인자 프린트함수 만들기 참고자료를 통해서 바로 공부시작해보겠습니다! 우선은 concept에 대한 기본적인 문법은 알고있으시다는 전제하에 진행하겠습니다. 소스코드 #include #include template concept IsAnyOf = (std::same_as || ...); template concept IsPrintable = std::integral || std::floating_po.. 2021. 6. 23.
Devcpp에서 c++23 사용하기 Devcppで c++23を 使用する Using c++23 with Devcpp 안녕하세요!! devcpp에서 c++23을 사용하는방법을 알려드리겠습니다. 우선은 이방법으로 2020년도에 정식으로출시된 c++20또한 사용가능합니다! 바로가시죠! gcc 다운로드 https://winlibs.com/ WinLibs - GCC+MinGW-w64 compiler for Windows WinLibs standalone build of GCC and MinGW-w64 for Windows Jump to: Download | How to use from Windows Command Prompt | How to use from Code::Blocks | Philosophy What is it? In short: it's a free C and C++ compiler for Microsoft Win.. 2021. 6. 20.
네트워크 유량 알고리즘 Network flow [ C++20 / Algorithm ] 개발환경 >> Visual Studio 2022 언어 >> C++20 운영체제 >> Windows10 [ 참고자료 ] 안녕하세요!!! 이번에는 네트워크 유량에 관한 알고리즘을 객체화해보았습니다.' 바로 시작하겠습니다! [ 네트워크유량 알고리즘 network flow algorithm ] 우선은 네트워크유량 알고리즘이란? 각각의 변(edge)에 정해진 용량(capacity)보다 작은 흐름(flow)이 주어진 방향 그래프 라고 합니다!! 다음과 같은 그래프가있을때..! 'A'에서 'H'로 가는데 최대한으로 보낼수있는 유량은 몇일까요? (그림에서 빠뜨렸는데, B -> C로 가는 용량은 4입니다.) 다음에서 나와있는 숫자는 그 간선으로 데이터를 보낼수있는 총 용량 이며, 용량이상으로는 유량의 데이터를 보내지못합.. 2021. 6. 19.