문제 가운데 글자 가져오기 접근 문자열의 길이가 짝수인 경우와 홀수인 경우를 나누어서, 다른 인덱스를 반환 코드 C++ 코드 #include <string> using namespace std; string solution(string s) { string answer = ""; int l =...
강의 자기정보(self-information) : i(A) A : 사건 [i(A) = log_{b}(\frac{1}{P(A)}) = -log_{b}P(A)] [i(AB) = log_{b}(\frac{1}{P(A)P(B)}) = log_{b}(\frac{1}{P(A)}) + log_{b}(\frac{1}{P(B)}) = i(A) + i(B)] ...
강의 확률 똑같은 실험을 무수히 많이 반복할 때 어떤 일이 일어나는 비율 A라는 어떤 사건이 일어날 확률 : P(A) 확률은 0에서 1사이의 값을 가짐 조합(combination) 어떤 집합에서 순서에 상관없이 뽑은 원소의 집합 n 개 중 r개를 뽑는 조합의 수 [{n}C{r} = \left(\begin{array}{r}...
문제 수박수박수박수박수박수? 접근 두 개씩 묶어서 하고 마지막에 남는지 안남는지만 체크 코드 C++ 코드 #include <string> using namespace std; string solution(int n) { string answer = ""; for(int i = 0; i<n/2;...
문제 3진법 뒤집기 접근 10진법을 3진법으로 바꾸기 3진법을 뒤집기 3진법을 10진법으로 바꾸기 이 과정에서 1,2번은 한번에 해결할 수 있다. 3진법으로 바꾸는 과정에서 뒤집어서 저장하면 된다. C++ 같은 경우 int형으로 할 경우 오버플로우가 발생할 수 있다. 코드 C++ 코드 #include <v...
문제 소수 찾기 접근 n까지의 모든 소수의 개수를 세는 문제이다. 에라토스테네스의 체를 이용하면 쉽게 소수를 찾을 수 있다. 코드 C++ 코드 #include <vector> using namespace std; int arr[1000001]; int solution(int n) { int answer = ...
문제 문자열 내 p와 y의 개수 접근 그냥 p, y 개수를 센다. 코드 C++ 코드 #include <string> #include <iostream> using namespace std; bool solution(string s) { int pCnt = 0, yCnt = 0; for...
문제 두 정수 사이의 합 접근 대소관계가 정해져 있지 않으므로 이부분만 주의하면 쉽게 해결가능하다. 코드 C++ 코드 #include <vector> using namespace std; long long solution(int a, int b) { long long answer = 0; if...
문제 같은 숫자는 싫어 접근 배열을 순회하며 answer의 마지막 원소와 비교하며 넣을지 버릴지 정해주면 된다. 코드 C++ 코드 #include <vector> #include <iostream> using namespace std; vector<int> solution(vector&l...
문제 나누어 떨어지는 숫자 배열 접근 arr를 순회하며 나머지가 0인 수들만 따로 저장해두고 이를 정렬하면 된다. 코드 C++ 코드 #include <vector> #include <algorithm> using namespace std; vector<int> solution(vector&l...