목록백준/여러가지 문제들 (39)
Study hard

https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net [풀이] 소인수분해 : 합성수를 소수의 곱으로 나타내는 것 굳이 에라토스테네스의 체로 소수를 구하지 않고, 2부터 N을 나누어 가면서 나누어지지 않을경우 +1한 값을 나누는 방법으로 풀 수 있다. #include using namespace std; int N; int p = 2; void solution() { cin >> N; while (N != 1) { if (N%p == 0) { cout

https://www.acmicpc.net/problem/6588 6588번: 골드바흐의 추측 문제 1742년, 독일의 아마추어 수학가 크리스티안 골드바흐는 레온하르트 오일러에게 다음과 같은 추측을 제안하는 편지를 보냈다. 4보다 큰 모든 짝수는 두 홀수 소수의 합으로 나타낼 수 있다. www.acmicpc.net [풀이] 소수는 에라토스테네스의 체 알고리즘을 이용하여 풀었다. 에라토스테네스의 체 알고리즘 참고: 2020/06/18 - [백준/여러가지 문제들] - (c++)백준 1929번: 소수 구하기 (c++)백준 1929번: 소수 구하기 https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ..

https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net [풀이] 소수는 에라토스테네스의 체 알고리즘을 이용하여 구하였다. 에라토스테네스의 체 알고리즘은 2부터 구하고자 하는 범위의 수들을 배열에 넣어 소수가 아닌 수를 체크하는 알고리즘이다. 2를 제외한 2로 나누어 떨어지는 값 체크 → 3을 제외한 3으로 나누어 떨어지는 값 체크 → (4는 이미 체크 되었으므로 패스) → 5를 제외한 5로 나누어 떨어지는 값 체크 → ··· 마지막까지 체크되지 않은 값들이 소수이다. 2를 제외한 2..

https://www.acmicpc.net/problem/11576 11576번: Base Conversion 타임머신을 개발하는 정이는 오랜 노력 끝에 타임머신을 개발하는데 성공하였다. 미래가 궁금한 정이는 자신이 개발한 타임머신을 이용하여 500년 후의 세계로 여행을 떠나게 되었다. 500년 후의 www.acmicpc.net [풀이] A진법을 십진수로 변환하고, 변환한 십진수를 다시 B진법으로 변환하면 된다. A진법을 십진수로 변환하는 방법은 A진수의 각 자릿수만큼 (A^(자릿수)) * (그 자리에 해당하는 값)을 해주면 되고, 십진수를 B진법으로 변환하는 것은 십진수를 0이 될때까지 B로 계속 나누면서 그 나머지를 저장해두면 된다. #include #include #include //pow usin..

https://www.acmicpc.net/problem/2089 2089번: -2진수 -2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 20, 21, 22, 23이 표현 되지만 -2진법에서는 (-2)0 = 1, (-2)1 = -2, (-2)2 = 4, (-2)3 = -8을 표현한다. 10진수로 1부터 표현하자면 1, 110, 111, 100, 101, 11010, 110 www.acmicpc.net [풀이] 나누어야 할 값이 짝수인 경우 2로 나눈 후 -를 붙여주면 된다. ex) 4 / -2 = -2, - (4 / 2) = -2 그리고 -2진수 값을 저장하는 stack에는 0을 저장한다. 나누어야 할 값이 짝수가 아니면서 음수인 경우는 음수를 양수로 바꾸고 1을 더해준 후 2로 나눠주면 된다. ..

https://www.acmicpc.net/problem/1212 1212번: 8진수 2진수 첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다. www.acmicpc.net [풀이] 8진수를 2진수로 변환하려면 8진수의 가장 오른쪽 수부터 3자리 2진수로 바꿔주면 된다. 314 = 11001100 수가 0인 경우 바로 0을 출력하도록 하고, 0이 아닌 경우에 1로 시작하도록 2진수를 저장해 둔 스택의 앞부분에 있는 0을 모두 제거한다. #include #include #include using namespace std; string Octal; stackBinary; void solution() { cin >> Octal; if (Octal == "0") { cout