콘솔창 & 윈도우창 57

프로그래머스 LV.2 - N개의 최소공배수

https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  최대 공약술르 구하는 알고리즘으로 유클리드 호제법이라는 것이 있다.이 알고리즘을 통해 최대 공약수를 구하는 과정을 코드로 나타내면 다음과 같다. int GCD(int a, int b){ int m = max(a, b); int n = min(a, b); while (m % n != 0) { int r = m % n; m = n; n = r; } return n;} 왜 최대 ..

프로그래머스 LV.2 다음 큰 숫자

https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   테스트 케이스는 통과하지만 최적화에 실패한 코드#include #include #include using namespace std;long long binary(int n) { stack stk; string b_str = ""; while (n != 0) { if (n % 2 == 1) stk.push(1); else stk.push(0); n /= 2; } while (!(..

프로그래머스 LV.2 기능 개발

https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  현재 과정에서 + 속도가 100이 넘으면 dequeue에서 꺼내주는 방식으로 계속 돌리다가.다음 인덱스가 100이 넘지 않으면 자연스럽게 종료를 해주는 방식으로 구현했다. 이를 위해서 pair를 사용하여 구현하였다. 내가 짠 코드#include #include #include #include #include #include #includeusing namespace std;vector solution(vector progresses, vect..

[백준 실버3] 9095 1, 2, 3 더하기

https://www.acmicpc.net/problem/9095 피보나치 수열 처럼 n-1 n-2 n-3을 더해주면 된다.직접 손으로 그려가며 경우의 수를 써봤는데 1일 땐 1의 경우의 수2일 땐 2의 경우의 수3일 땐 4의 경우의 수4일 땐 1 + 2 + 4 = 7의 경우의 수였으며,5일 땐 7 + 4 + 2 = 13의 경우의 수를 가졌다.  #include #include #include #include using namespace std;int main(void) { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int T; cin >> T; while (T-- != 0) { int n = 0; cin >> n; if (n..

프로그래머스 LV.2 멀리 뛰기

https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  해당 문제를 해결하기 위해서는일단 효진이의 멀리 뛰기 경우의 수를 구하는 것이 먼저다. N번째 경우의 수는 N-1번째 경우의 수 + N-2번째 경우의 수와 같다. 이는 마치 피보나치 수열과 유사하다.피보나치 수열은 n = n-1 + n-2의 관계성을 띈다.다만 피보나치 수열과 다른점은 피보나치는 첫째 및 둘째 항이 1인데 그것만 제외하면 피보나치 수열과 동일하다. 이렇게 나온 값 % 1234567 = answer이 된다. 시간초과 난 코드#i..

[백준 골드5] 2023 신기한 소수

https://www.acmicpc.net/problem/2023 자릿수가 한 개인 소수 2,3,5,7을 시작으로 탐색한다. 이어서 자릿수가 두 개인 현재 수 * 10 + a를 계산하여 이 수가 소수인지 판단하고,소수라면 재귀 함수로 자릿수를 하나 또 늘린다.단 a가 짝수인 경우 항상 2를 약수로 가지므로 가지치기로 a가 짝수인 경우를 제외한다.이런 방식으로 자릿수를 N까지 확장했을 때 그 값이 소수라면 해당 값을 출력한다. 이러한 방식으로 DFS를 이용한 탐색이 가능하다. #include #include #include #include #include #include #include #include #include #include #include using namespace std;int N;void ..

[백준 실버 5] 1427 소트인사이드

https://www.acmicpc.net/problem/1427    string으로 받으면 cin.eof()로 안받아도 된다.띄어쓰기도 없는 걸 보니깐 string으로 받는 게 편한 거 같다.여기서 내림차순으로 수를 정렬을 하면 되는데사실 vector의 sort는 퀵소트라 빠르긴 하다.하지만, 직접 선택 정렬을 통해 구현할 수도 있다. 현재 범위에서 maxIdx를 찾고,최대값을 앞으로 보내는 식으로 정렬한다.#include #include #include #include #include #include #include #include #include #include using namespace std;int main(){ ios::sync_with_stdio(0); cin.tie(0); ..

[백준 골드2] 1377 버블 소트

https://www.acmicpc.net/problem/1377 swap된 거리가 가장 길었던 것에 +1을 하면 된다.여기서 버블 정렬의 이중 for문에서 안쪽 for문이 돌 때swap이 일어나지 않은 반복문이 한 번 더 실행되는 것을 감안해 최댓값에 1을 더한다.  #include #include #include #include #include #include #include #include #include using namespace std;int main(){ ios::sync_with_stdio(0); cin.tie(0); int n, max = 0; cin >> n; vector>v(n); for (int i = 0; i > v[i].first; ..

[실버3] 1021 회전하는 큐

https://www.acmicpc.net/problem/1021  앞 뒤로 출력한다는 점에서 STL deque를 사용하는 것을 알 수 있었다. https://www.acmicpc.net/problem/1021#include #include #include #include #include #include #include #include #include using namespace std;int main(){ ios::sync_with_stdio(0); cin.tie(0); deque d; vector v; int n, m, count = 0; int idx; cin >> n >> m; for (int i = 1; i > x; v.push_ba..