코드 최적화 연산 나눗셈 피하기 비트 연산 활용(배열의 크기를 2의 승수로) Shift 연산 활용 곱셈으로 대체 조건문의 조건이 많다면 나눠서 사용 조건식에서 느린 연산은 뒤로 자주 사용되는 케이스를 앞 쪽에 반복문, 조건문 최대한 줄이기 조건문 사용 시 삼항 연산자가 더 빠른 속도 연산 결과를 저장하여 사용 (연산 횟수 줄이기) 변수 음수가 아니라면 int 형대신에 **unsigned int**형을 사용 부동 소수점 (float, double) 은 되도록 사용하지 않기 지역 변수는 가능한 제일 안 쪽 스코프에서 선언 CHAR, SHORT 보다는 INT 를 사용 변수 대입보다는 변수 초기화를 사용 변수 선언 위치에 따라서도 속도 변화 형변환이 잦을 시 속도 저하 함수 짧은 함수는 함수를 직접 삽입하여 사..
.입출력 . 입출력 방식 속도- C 표준 입출력 함수 scanf, printf (적은 메모리를 사용하지만 아래 방법보다는 느림) 단, cin보다 대용량의 데이터를 input 할 수 있음 - std::cin, std::cout 사용 시 아래 코드 적용1 ios_base::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL) cs이 코드를 적용하지 않으면 입,출력시 사용하는 버퍼를 동기화하는 것인데,이럴 경우 C++ 표준 stream버퍼와 C 표준 stream 버퍼가 병행하여 버퍼를 사용하게 된다.C++, C 로 stream 버퍼를 모두 사용할 수 있지만, 버퍼를 병행하여 사용하기 때문에 속도가 느려지는 현상이 발생하게 된다. 그래서 이 코드로 동기화를 해제해주면서..
#. Problem https://www.acmicpc.net/problem/1904* The copyright in this matter is in BOJ 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이의 공부를 방해하기 위해 0이 쓰여진 낱장의 타일들을 붙여서 한 쌍으로 이루어진 00 타일들을 만들었다. 결국 현재 1 하나만으로 이루어진 타일 또는 0타일을 두 개 붙인 한 쌍의 00타일들만이 남게 되었다. 그러므로 지원이는 타일로 더 이상 크기가 N인 모든 2진 수열을 만들 수 없게 되었다. 예를 들어, N=1일 때 1만 만들 수 있고, N=2일 때는 00, ..
#. Problem https://www.acmicpc.net/problem/1003* The copyright in this matter is in BOJ #. Resolution Process 1. Read and understand problem 2. Redefine the problem + abstract 3. Create solution plan (select Algorithm, Data structure) 4. Prove the plan (check performance time and usage memory) 5. Carry out the plan 6. Look back on the plan and find a way to improve it #. Solve 1. #. CodeCode 1) ..
#. Problem https://www.acmicpc.net/problem/2748* The copyright in this matter is in BAEKJOON 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다.이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된다.n=17일때 까지 피보나치 수를 써보면 다음과 같다.0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. #. Resolution Process 1. Read and under..
#. Problem https://www.acmicpc.net/problem/11725* The copyright in this matter is in BAEKJOON 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. 첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다. 첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다. #. Resolution Process 1. Read and understand problem 2. Redefine the problem + abstract 3. Create solution ..
#. Problemhttps://programmers.co.kr/learn/courses/30/lessons/43162* The copyright in this matter is in Programmers 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함..