전공 공부 정리 (93) 썸네일형 리스트형 2. 1161 : 하노이탑1 문제 출처 : http://bitly.kr/b0EzMQ 정올::Xpert 하노이의 탑에 대한 전설은 아래와 같다. 고대 인도의 베나레스(현재 베트남의 하노이)에 있는 한 사원에는 세상의 중심을 나타내는 큰 돔이 있고 그 안에 세 개의 다이아몬드 기둥이 동판 위에 세워져 있다. 기둥 가운데 하나에는 신이 64개의 순금 원판을 끼워 놓았다. 가장 큰 원판이 바닥에 놓여 있고, 나머지 원판들이 점점 작아지며 꼭대기까지 쌓여 있다. 이것은 신성한 브라흐마의 탑이다. 브라흐마의 지시에 따라 승려들은 모든 원판을 다른 기둥으 www.jungol.co.kr /************************************************************** Problem: 1161 User: hbroj.. 1. 1102 스택 (stack) 문제 출처 : http://bitly.kr/cA7kzH 정올::Xpert Stack은 "더미"란 뜻을 가진다. 책 더미, 신문 더미 등에 사용하는 단어이다. 책 더미를 예로 들어 보자. 책 더미를 쌓았다고 했을 때, 이 책 더미에서 책을 가져오는 가장 정상적인 방법은 제일 위에 있는 책을 가져오는 방식이다. 다시 말하면 가장 먼저 들어간 책은 가장 나중에 꺼낼 수 있을 것이다. 이런식으로 자료가 가장 밑에 쌓이고(입력). 자료를 가져올 때(출력)는 가장 위(최근)의 자료를 가져오는 자료구조를 Stack하고 한다. 이러한 www.jungol.co.kr /************************************************************** Problem: 1102 User: hbr.. 8. C/C++ 문자열 입출력 알고리즘 문제에 최적화 된 문자 입력 방법: 1) 문자_문자 형태로 입력될 때: ex) 아래와 같이 가변적으로 문자가 입력 될 때. P y//P 이면 y를 삽입 L//L 이면 왼쪽 이동 R//R 이면 오른쪽 이동 P x//P 이면 x 삽입 scanf(" %c", &cmd);//앞에 한 칸 뛰고 입력 받는다. switch(cmd){ case 'P': //P 면 입력을 한번 더 받음 scanf(" %c", &ch);//역시 앞에 한 칸 뛰고 입력 받는다. break; case 'L': break; case 'R': break; } scanf(" %c", &cmd); %c앞을 한 칸 띄어 준다. 2)문자_문자열 형태로 입력 될 때 P abc L R P a char a[10];//넉넉하게 잡아준다. gets(a.. 1. 1920 수 찾기 문제 출처 : https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수들의 범위는 int 로 한다. www.acmicpc.net 해쉬로 풀이 : #include #define MAX_HASH 4294967 // int 범위를 1000으로 나눈 값 using namespace std; typedef struct Node { int id; Node* hashNext; }Node; Node* hashTabl.. 7. 잔실수 모음 1. 실수 출력 : 출처 : http://59.23.150.58/30stair/CtoF/CtoF.php?pname=CtoF 섭씨 온도를 화씨 온도로 변환하는 프로그램을 작성하세요. 화씨 온도 = 9 / 5 * 섭씨온도 + 32 입력) 1 에서 100 사이의 자연수가 입력으로 주어진다. 출력) 소수 첫째 자리까지 출력한다. 입출력 예) 입력 50 출력 122.0 f = (9/5) * c + 32; //출력값 : 82.0 f = (9.0 / 5.0) * c + 32; //출력값 : 122.0 9/5 = 1 9.0/5.0 = 1.8 이라는 다른 값이 나옴. 주의 6. C++ 프로그래밍 스타일 가이드라인 코딩/프로그래밍 규칙 C++ 가이드라인 : https://github.com/CppKorea/CppCoreGuidelines/tree/sync/sections#S-interfaces CppKorea/CppCoreGuidelines C++ 핵심 가이드라인 (C++ Core Guidelines). Contribute to CppKorea/CppCoreGuidelines development by creating an account on GitHub. github.com 구글 가이드라인 : https://jongwook.kim/google-styleguide/trunk/cppguide.xml 불러오는 중입니다... 이름 규칙 (출처 : https://jongwook.kim/google-styleguide/trunk/cppguide.. 3. 재귀함수를 비재귀함수로 변환 재귀함수 장점 : 직관적인 알고리즘 설계가 가능 재귀함수 단점 : 함수 호출 오버헤드 (Context Switch) -> 시간 성능 저하, 자신을 다시 호출하면서 생성되는 변수 때문에 메모리 문제가 생길 수 있음. (출처 : http://bitly.kr/DNHtU3http://bitly.kr/DNHtU3) -최적화 단계에서 비재귀 함수로 변환해야 함.- 1. 재귀함수와 비재귀 함수의 성능 차이 #define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; //재귀함수 long long recursiveFactorial(int n) { if (n < 1) { return 1; } else { return n * recursiveFactoria.. 5. Visual Studio 팁 1. scanf() 사용하기 (출처 : https://popbox.tistory.com/17) Visual Studio 2019 버전에서 scanf() 사용시 오류 C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 에러가 남. scanf()의 오버플로우 가능성 때문에 2010버전 이상의 컴파일들이 sacnf()를 사용못하게 하는 것. scanf()를 그대로 사용하기 위해서는 전처리기 위쪽에 매크로 정의 필요 : #define _CTR_SECURE_NO_W.. 이전 1 ··· 6 7 8 9 10 11 12 다음