본문 바로가기

알고리즘119

[백준] 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.
알고리즘 문제해결 전략-01리뷰 알고리즘 문제해결전략 (저자:구종만) 01-3 코딩과 디버깅에 관하여 (43p~86p) 3.1 도입 :코딩의 중요성을 간과하지 말라 프로그래밍 대회에서 좋은 성적을 올리기 위한 비결은 읽기 쉬운 코드를 작성하는 것 3.2.좋은 코드를 짜기 위한 원칙 1. 간결한 코드 작성-> 버그생길 우려가 줄어들고 디버깅이 쉬워짐,전역변수 많이 사용하지 않기,c++매크로사용 2.적극적으로 코드 재사용하기 -> 코드를 모듈화 3.표준라이브러리 공부하기 4. 항상 같은 형태로 프로그램을 작성하기 ->자주 작성하는 알고리즘이나 코드 등에 대해서는 한 번 검증된 코드를 작성하고 이것만을 꾸준히 사용하기. 5.일관적이고 명료한 명명법 사용하기 -> int a그만 사용하기.. 6.모든 자료를 정규화해서 저장하기 7.코드와 데이터.. 2022. 3. 28.
[백준] 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.