본문 바로가기
728x90

🥇Baekjoon Solutions73

[C++] 백준 10844번: 쉬운 계단 수 https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 최초풀이 데이터 타입에서 long long을 사용하고 각 부분에서 10억을 나눠주는 부분에서 많이 헤맸던 문제였습니다. #include using namespace std; long long num[101][10]; int main() { int N; long long ans = 0; cin >> N; num[1][0] = 0; for (int i = 1; i 2021. 7. 28.
[C++] 백준 2108번: 통계학 https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 최초 풀이 주요부분 최빈값을 구할 때 최대 절대값이 4000인 것을 감안하여 인덱스값으로 빈도를 누적해 줍니다. #include #include #include #include using namespace std; int cnt[8001];// 음수 인덱스를 양수로 만들어줌 int main() { vectorv; int N, k, total = 0; cin >> N; for (int i = 0; i < N; i.. 2021. 7. 28.
[C++] 백준 2003번: 수들의 합2 https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 최초풀이 수열을 처음부터 끝까지 각각의 부분을 기준으로 하나의 루프를 추가하여 누적합을 구해고 판단해준다. #include #include using namespace std; int main() { int N, M, k, count = 0; vectorv; cin >> N >> M; for (int i = 0; i > k; .. 2021. 7. 27.
[C++] 백준 2748번: 피보나치수2 https://www.acmicpc.net/problem/2748 2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 최초 풀이 주의사항 89번째까지 도달하게 된다면 int형 데이터 타입으로는 범위가 넘어가기 때문에 long long 자료형을 사용 #include using namespace std; long long arr[91]; int main() { int n; cin >> n; arr[0] = 0; arr[1] = 1; for (int i = 2; i 2021. 7. 27.
[C++] 백준 4375번: 1 https://www.acmicpc.net/problem/4375 4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net 최초 오류 무작정 11...11인 수를 n으로 나누려한다면 런타임 에러가 발생한다. 이유: 계속 안나눠 진다면 11...11의 길이가 무한정 커져서 계산 자체에 오류가 발생한다. 길이(자리수)가 2000이라면 계산이 될 수 없기 때문이다. 풀이 문제에서 어떤 수로 나누어진다는 것을 판별 할때는 커지는 수를 계속해서 나누려는 수로 나눈나머지로 한정시켜킨다. (a+b)%c = (a%c+b%c)%c (나머지는 같음을 이용함 계속해서 나머지만을 이용) 작은 자리숫.. 2021. 7. 27.
[C++] 백준 10610번: 30 https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 최초 풀이 전략 자리수가 10^6만큼이므로 숫자형 데이터타입이 아닌 문자열로 받아 각각의 자리수에 대한 조건을 따져준다. #include #include #include using namespace std; void solve(string n) { vectorv; string ans = ""; int total = 0; for (int i = 0; i < n.size(); i++) { v.push_.. 2021. 7. 26.
[C++] 백준 2960번: 에라토스테네스의 체 https://www.acmicpc.net/problem/2960 2960번: 에라토스테네스의 체 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다. www.acmicpc.net 최초 풀이 #include #include // memset 라이브러리 #include using namespace std; bool Not_prime[1001]; void solve(int n, int k) { int num = 0; for (int i = 2; i > K; memset(Not_prime, false, sizeof(Not_prime)); solve(N, K); return 0; } 2021. 7. 26.
[C++] 백준 1837번: 암호제작 https://www.acmicpc.net/problem/1837 1837번: 암호제작 원룡이는 한 컴퓨터 보안 회사에서 일을 하고 있다. 그러던 도중, 원룡이는 YESWOA.COM 으로부터 홈페이지 유저들의 비밀키를 만들라는 지시를 받았다. 원룡이는 비밀 키를 다음과 같은 방법으로 www.acmicpc.net 최초 풀이 #include using namespace std; int main() { long long P;// 입력받는 P값이 10^100이라 문자로 받아서 처리해야함... int K, t; cin >> P>>K; bool check = true; for (int i = 2; i < K; i++) { if (P % i == 0) { check = false; t = i; break; } } i.. 2021. 7. 26.
[C++] 백준 1991번: 트리 순회 https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1≤N≤26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 영문자 www.acmicpc.net 최초 무식한 풀이 - 각각의 함수들을 개별적으로 만들어 풀이 진행 - 트리구조를 간단한 구조체를 활용하여 구현(노드가 최대 26개 만들어진다는 것에 착안하여 간단한 구조 구현) #include #include using namespace std; struct tree { char left; char right; }; vectorT(26); //재귀 함수를 통한 트리 출력 void solve1.. 2021. 7. 23.
728x90