c++ 10

[C++] 백준 온라인 저지 2798, 블랙잭

문제 www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는다. 합이 M을 넘지 않는 카드 3장을 찾을 수 있 www.acmicpc.net 설계 브루트포스는 '모든 경우의 수'를 탐색하는 알고리즘이다. 말 그대로 '무식한 힘' 알고리즘이다. 장점으로는 정답을 100% 찾아낼 수 있다는 것이지만, 단점은 당연히 효율이 극단적으로 떨어진다는 것이다. 하지만 브루트포스가 오히려 코드가 간결한 문제들이 몇 개 있다. 이런 문제 같은 경우다. 먼저 변수들을 선언해주고 필요한 정보를 입력해줬다. n과 m은 문제에 있는 ..

카테고리 없음 2020.11.12

[C++] 백준 온라인 저지 10250

문제 www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 설계 생각보다 굉장히 쉬운 문제였다. 당연하게도, for문이나 while문 돌려서 풀면 틀리는 문제다. (시간 초과) 나는 이 문제를 H따로, W따로 구해서 출력할 때 둘이 붙이는 방식으로 풀려고 했다. 먼저 주어지는 H, W, N과 정답으로 사용될 변수인 answerH, answerW를 변수로 둔다고 가정하자. 그렇다면 조건은 크게 2가지로 볼 수있다. 1. 고객이 들어오면, 무조건 H먼저 ..

카테고리 없음 2020.09.24

[C++] 백준 온라인 저지 1193

문제 www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 설계 내가 '수학 1' 문제집에 있는걸 풀면서 느꼈는데 진짜 수학적 사고방식이 중요하다고 느낀다. 왜냐하면 if랑 for문 우다다다 쓰면 풀긴푸는데 효율이 개똥이라.. 그리고 for문 무조건 for(int i = 0; i < n; i++) 이런식으로만 사용하려고 하는 습관좀 없애야겠다. 근데 그게 어렵더라.. 아무튼 각설하고. 이번 문제는 좀 어려웠다 ㅠㅠ 다른사람은 쉽다는데.. 1/1 1/2 1/3 1/4 1/5 1/6 2/1 2/2 2/3 2/4 2/5 2/6 3/1 3/2 3/3 3/4 3/5 3/6 4/1 4/2 4/3 4/4 4..

카테고리 없음 2020.09.15

[C++] 백준 온라인 저지 1712

문제 www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 설계 처음엔 굉장히 쉬운문제라고 생각했다. 그래서 while문을 돌렸다 대부분의 사람들은 아마 보자마자 나처럼 생각했을 것이다. "그냥 1000 + 70*n < 170*n 조건으로 while문 돌리면 풀겠는데?" 라고 생각했는데, 결과는 시간초과였다. 그렇게 무식하게 풀지 말란 소리였음. 그래서 짱구를 열심히 굴려봤다. 그래서 다음과 같은 결론을 도출했다. 물건의 가격이 170이고, 가변비용이 70이므로 고정비..

[C++] 백준 온라인 저지 10818

문제 코드 최소 -1000000, 최대 1000000이라서 1000000만큼의 배열을 할당해줘도 틀린 답은 아니다. 하지만 그만큼 안쓰면 메모리 낭비다. 고로 동적 할당을 해주도록 하자. #include #include #include using namespace std; class solution { public: solution(); }; solution::solution() { int n; cin >> n; int* num; num = new int[n]; for (int i = 0; i > num[i]; } int min = num[0], max = num[0]; for (int i = 0; i < n; i++) { if (num[i] < min) min = num[..

[C++] 동적 배열 할당 및 삭제

개요 C++은 java와 다르게 가비지 컬렉터가 없어서 직접 할당한 배열을 삭제해줘야한다. 학교 수업 이후로 안써먹은 C++을 코딩테스트 때문에 공부하게되었다.. 포인터 쥐약인데 오늘의 주제 C++의 동적 배열을 할당하고 삭제해보자 진행 과정 1. 동적 배열의 선언 코드 #include #include #include using namespace std; class solution { public: solution(); }; solution::solution() { int n; cin >> n; int* num; num = new int[n]; for (int i = 0; i > num[i]; } for (int i = 0; i n; int..