본문 바로가기

하루 알고리즘 1문제 풀기

(21)
백준 1966번 - 프린터 큐 문제 C++ [Queue] 📍 백준 1966번 - 프린터 큐 문제 C++ [Queue]🧩문제 요약T개의 testcase가 주어진다. 입력되는 숫자의 갯수 n과 관심있는 숫자의 인덱스 번호 m이 입력된다.prioiry_queue와 동일하게 중요도를 기준으로 중요도가 높은 것 부터 출력이 된다고 할때, 관심있는 m번째 숫자는 몇번째로 출력이 되는가?🧾내가 작성한 초기 코드 #include #include #include using namespace std; bool compare(int a, int b){ return a > b; }int main(){ int t, n, m, num, nums[101], find_num; cin >> t; while(t--){ cin >> n >> m ; ..
백준 1008번 - A/B 문제 C++ 📍 백준 1008번 - A/B 문제 C++🧩문제 요약A/B를 출력하시오 🧾내가 작성한 초기 코드 #include using namespace std; int main(){ long double a, b; cin >> a >> b ; cout 👍이 문제에서 배운점브론즈 문제이기도 하고 문제가 너무 쉽길래 기본 연산 문제이군! 하면서 아주 당당하게 A/B를 틀렸지만 당당하게 틀렸다. ㅋㅋㅋ 이 문제에서 주목할 점은 출력 요구조건에 있다.  😕 문제점 1. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다. 위의 출력 요구조건을 만족하기 위해서는 출력이 소수 9자리 이상으로 되야 하는데 그냥 그대로 출력하면 아래와 같이 6자리 까지만 출력하고 끝나 버린다.이는..
백준 1929번 - 소수찾기 문제 프로그래밍 언어 [아라토스테네스의 체] 📍 백준 1929번 - 소수찾기 문제 프로그래밍 언어 [아라토스테네스의 체]🧩문제 요약아라토스테네스의 체>n과 m이 주어질 때 두 수사이의 소수를 모두 출력하라. 👍이 문제에서 배운점아라토스테네스의 체는 소수를 판별하는게 아니라 합성수를 지워나가는 개념이다. https://codinghago.tistory.com/99 소수찾기 알고리즘 C++, 에라토스테네스의 체소수란? 1보다 크고, 1과 자기 자신 외에는 나누어지지 않는 수를 말한다. (예 : 2, 3, 5, 7, 11, 13 ....) 🧩 기본 소수 판별 (Brute Force)하나의 수n에 대해 2부터 √N까지 나눠보며 소수인지 판단. 시간codinghago.tistory.com   아라토스테네스의 체를 알고 있었지만 계속 배수만큼 수를 판..
백준 11866번 - 요세푸스 0 문제 C++ [Queue] 📍 백준 11866번 - 요세푸스 0 문제 C++ [Queue]🧩문제 요약요세푸스 순열 문제를 해결하라. 요세푸스 순열이란?🧾내가 작성한 초기 코드 #include #include using namespace std; int main(){ int n,k, i, tmp; queue q; cin >> n>> k ; for(i=1; i\n"; break; }else{ cout 👍이 문제에서 배운점문제를 잘 풀었다고 생각했느데 자꾸 마지막 97%에서 틀려버려서 뭐가 문제인지 한참을 들여다 봤다. 😕 문제점 1.  조건 검사 타이밍의 문제. 이 문제는 조건 검사 타이밍이 문제였다. if(q.size()==1)판단을 for루프..
백준 2839번 - 설탕배달 문제 C++ [그리디 알고리즘/다이나믹 프로그래밍] 📍 백준 2839번 - 설탕배달 문제 C++ [그리디 알고리즘/다이나믹 프로그래밍]🧩문제 요약그리디 알고리즘/다이나믹 프로그래밍>3kg, 5kg의 설탕 봉지가 있다. n이 주어졌을 때 n을 만족하기 위해서 위의 설탕 봉지를 최소한으로 하는 봉지갯수를 return 하라. n에 딱맞춰야함. 만약 그럴수 없을 경우 -1을 return 🧾내가 작성한 초기 코드 #include #include using namespace std;int main(){ int n, cnt, answer, i=1, a=1001, b=1001, c=1001, d=1001; cin >> n ; if(n%5==0){ a=n/5; } if(n%3==0){ b = n/3; } ..
01백준 1904번 - 01타일문제 C++ [다이나믹 프로그래밍 알고리즘] 📍 백준 1904번 - 01타일문제 C++ [다이나믹 프로그래밍 알고리즘]🧩문제 요약1, 00인 타일이 있다고 할 때, n이 주어지면 n개의 타일을 이용해 만들 수 있는 모든 가짓수를 구하라. 대신 %15746의 나머지를 return 할것. 🧾내가 작성한 초기 코드 #include using namespace std; int arr[1000001];int solve(int n ){ if(n==1){ return 1; } if(n==2){ return 2; } if(arr[n] != 0){ return arr[n]; } else{ arr[n] = solve(n-1) + solve(n-2); retu..
백준 11399번 - ATM 문제 C++ [그리디 알고리즘] 📍 백준 11399번 - ATM 문제 C++ [그리디 알고리즘]🧩문제 요약n명의 사람이 주어진다. 각 사람이 ATM기에서 돈을 인출하는 시간이 주어질 때 n명의 사람이 모두 돈을 인출할 수 있는 최소한의 시간을 구해라. 🧾내가 작성한 초기 코드 #include #include #include using namespace std; int main(){ int n, i, time=0,sum=0, tmp ; vector arr ; cin >> n; for(i = 0; i> tmp; arr.push_back(tmp); } sort(arr.begin(), arr.end()); for(i=0;i👍이 문제에서 배운점 😕 문제점 1. 지금의 코드 보다 더 ..
백준 2164번 - 카드2 문제 C++ [Queue] 📍 백준 2164번 - 카드2 문제 C++ [Queue]https://www.acmicpc.net/problem/2164🧩문제 요약 숫자 N이 주어질 때 1부터 N까지의 카드가 있다고 가정한다. 다음과 같은 규칙을 따른다고 할때, 제일 마지막에 남는 카드는 무엇인지 출력하라. 맨위의 카드를 버린다.맨위 카드를 맨 뒤로 보낸다. 🧾내가 작성한 초기 코드 #include #include using namespace std; int main(){ int n, arr[500001], i, flag=1, tmp ; cin >> n ; queue q; for(i=1; i👍이 문제에서 배운점 😕 문제점 1. 배열을 사용하면 카드를 버리고 뒤로 보낼 때마다 shift를 해주던 배열의 인..