백준23 [백준] 10815숫자카드 c++ 알고리즘 분류는 이분탐색으로 되어있는데 이분탐색으로 안풀고 이렇게 풀어도 될것같아서 이렇게 풀어봤다. 숫자가 마이너스도 들어오기 때문에 배열을 두개 만들어 주었고 들어온 숫자랑 똑같은 인덱스를 체크해주었다. 내일 이분탐색으로도 풀어봐야겠다. #include using namespace std; bool num[10000000]; bool Mnum[10000000]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int m,temp; cin >> m; for (int i = 0; i > temp; if (temp < 0) Mnum[-(temp)] = true; else num[temp.. 2022. 4. 3. [백준]1094막대기 C++ 비트마스킹 문제이다. #include using namespace std; int main() { int temp = 0; for (int i = 0; i 1000 2^3 =8 temp -> 10000 2^4 =16 . . temp ->1000000 2^6 =64 #include using namespace std; //지민이가 가지고 있는 막대의 길이를 모두 더한다.처음에는 64cm 막대 하나만 가지고 있다.이때, 합이 X보다 크다면, 아래와 같은 과정을 반복한다. //가지고 있는 막대 중 길이가 가장 짧은 것을 절반으로 자른다. //만약, 위에서 자른 막대의 절반 중 하나를 버리고 남아있는 막대의 길이의 합이 X보다 크거나 같다.. 2022. 3. 30. [백준]11723집합 c++ 비트마스크를 몰라서 그냥 풀어봤는데 맞았다. 그냥 조건에 맞추어서 배열 값을 변경해주면 되는 문제였다. 비트마스킹 연산 안한 버전 #include #include using namespace std; bool bit[21]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int M; cin >> M; int count = 0; /*add x : S에 x를 추가한다. (1 ≤ x ≤ 20) S에 x가 이미 있는 경우에는 연산을 무시한다. remove x : S에서 x를 제거한다. (1 ≤ x ≤ 20) S에 x가 없는 경우에는 연산을 무시한다. check x : S에 x가 있으면 1을, 없으면 0을 출력한다. (1.. 2022. 3. 26. [백준] 9461파도반수열 c++ https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net 수열을 보고 규칙을 찾았을 때는 이 식을 찾았다. P(i)=P(i-2)+P(i-3) (단,i>3) 1, 1, 1, 2, 2, 3, 4, 5, 7, 9, 12, 16.... 그림을 보면 i번째 삼각형의 한변의 길이는 P(i-1)+P(i-5)임을 알 수 있다. 나는 첫번째 점화식으로 풀었다. 그리고 1~100 까지 P(i)를 출력해보니까 오버플로우가 일어나서 배열을 int 에서 long long으로 바꾸어.. 2022. 3. 24. 이전 1 2 3 4 5 6 다음