[백준] 24264번: 알고리즘 수업 - 알고리즘의 수행 시간 3 | C++ 풀이 # 문제 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시간을 예제 출력과 같은 방식으로 출력해보자. MenOfPassion 알고리즘은 다음과 같다. # 풀이 시간복잡도 세 번째 단계다. 문제에서 제시한 MenOfPassion 알고리즘을 먼저 살펴보면 아래와 같다. MenOfPassion(A[], n) { sum 백준/C++ 2023.06.18
[백준] 24263번: 알고리즘 수업 - 알고리즘의 수행 시간 2 | C++ 풀이 # 문제 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시간을 예제 출력과 같은 방식으로 출력해보자. MenOfPassion 알고리즘은 다음과 같다. # 풀이 시간복잡도 두 번째 단계다. 문제에서 제시한 MenOfPassion 알고리즘을 먼저 살펴보면 아래와 같다. MenOfPassion(A[], n) { sum 백준/C++ 2023.06.17
[백준] 24262번: 알고리즘 수업 - 알고리즘의 수행 시간 1 | C++ 풀이 # 문제 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시간을 예제 출력과 같은 방식으로 출력해보자. MenOfPassion 알고리즘은 다음과 같다. # 풀이 시간복잡도를 고려하는 단계에 이르렀다! 문제에서 제시한 MenOfPassion 알고리즘을 먼저 살펴보면 아래와 같다. MenOfPassion(A[], n) { i = ⌊n / 2⌋; return A[i]; // 코드1 } 배열과 n이 주어지는데 이를 통해 i를 구한 후 배열 A의 i번째 원소를 반환하면된다. 입력에 제시된 n의 범위를 참고하면 어떤 n을 넣더라도 코드는 1회 수행, 수행시간은 상수 시간임을 알 수 있다. 따라서 시간 복잡도는 O(1)이고, 항상 1과 0을 개행하여 출력해주면 끝! #include using name.. 백준/C++ 2023.06.16
[백준] 14215번: 세 막대 | C++ 풀이 # 문제 a, b, c가 주어졌을 때, 만들 수 있는 가장 큰 둘레를 구하는 프로그램을 작성하시오. # 풀이 따로 포스팅 하진 않았지만 삼각형 외우기의 다음 문제인 삼각형과 세 변 문제를 풀었다면 쉽게 풀었을 문제다. 그게 아니라도 삼각형의 성립 조건을 기억하고 있는 사람이라면 누구나 쉽게 풀 수 있다. 바로 정답 소스코드를 확인해보자. #include #include using namespace std; int main(){ int arr[3]; cin >> arr[0] >> arr[1] >> arr[2]; sort(arr, arr+3); if(arr[0] + arr[1] 백준/C++ 2023.06.15
[백준] 10101번: 삼각형 외우기 | C++ 풀이 # 문제 창영이는 삼각형의 종류를 잘 구분하지 못한다. 따라서 프로그램을 이용해 이를 외우려고 한다. # 풀이 아주아주 간단한 조건문 문제! 정답 소스코드를 바로 확인해보자. #include using namespace std; int main(){ int a, b, c; cin >> a >> b >> c; if(a==60 && b==60 && c==60) cout 백준/C++ 2023.06.14
[백준] 9063번: 대지 | C++ 풀이 # 문제 임씨의 이름이 새겨진 옥구슬의 위치 N 개가 주어질 때에, 임씨에게 돌아갈 대지의 넓이를 계산하는 프로그램을 작성하시오. 단, 옥구슬의 위치는 2 차원 정수 좌표로 주어지고 옥구슬은 같은 위치에 여러 개가 발견될 수도 있으며, x 축의 양의방향을 동쪽, y 축의 양의방향을 북쪽이라고 가정한다. # 풀이 답을 찾는 방법은 간단하다. 대소 비교를 통해 좌표를 찾아주면 되는데 방법은 여러가지다. 우선 정답 소스코드부터 확인해보자. #include #include using namespace std; int main(){ ios_base::sync_with_stdio(false);// 두 표준 입출력 동기화 해제 int n; cin >> n; // 배열 동적할당 int* x = new int[n]; i.. 백준/C++ 2023.06.13
[백준] 1085번: 직사각형에서 탈출 | C++ 풀이 # 문제 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. # 풀이 제한을 잘 확인해보면 어렵지 않은 문제다. 바로 정답 소스코드 확인! #include #include using namespace std; int main(){ int x, y, w, h; cin >> x >> y >> w >> h; int xAxis = min(x, w-x); int yAxis = min(y, h-y); cout 백준/C++ 2023.06.12
[백준] 11653번: 소인수분해 | C++ 풀이 # 문제 정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오. # 풀이 이래도 되나 싶을 정도로 간단한 풀이! 정답 소스코드를 바로 확인해보자. #include using namespace std; int main(){ int n; cin >> n; for(int i=2; i*i 백준/C++ 2023.06.11
[백준] 2581번: 소수 | C++ 풀이 # 문제 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오. # 풀이 지난 번에 풀이한 소수 코드를 잘 풀었다면 금방 해결할 수 있는 문제다.바로 정답 소스코드를 확인해보자. #include #include using namespace std; int main(){ vector prime; int primeSum = 0; bool primeCnt = 0; int m, n; cin >> m >> n; for(int i=m; i 백준/C++ 2023.06.10
[백준] 1978번: 소수 찾기 | C++ 풀이 # 문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. # 풀이 이번에도 어렵지 않은 문제! 바로 정답 소스코드를 확인해보자. #include using namespace std; int main(){ int cnt = 0; int n, num; cin >> n; while(n--){ cin >> num; bool prime = 1; if(num == 1) continue; for(int i = num-1; i>1; i--){ if(num%i == 0){ prime = 0; break; } } if(prime) cnt++; } cout 백준/C++ 2023.06.09