목록분류 전체보기 (217)
Study hard

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/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net [풀이] 에라토스테네스의 체 알고리즘을 이용하여 풀었다. 에라토스테네스의 체 알고리즘은 2부터 판별하고자 하는 가장 큰 수까지 배열에 넣어 소수가 아닌 것들을 체크하는 알고리즘이다. for문을 돌려 2를 제외한 2로 나누어 떨어지는 모든 수를 체크하고, 3을 제외한 3으로 나누어 떨어지는 모든 수를 체크하고··· 이때 한번 check된 수로는 나누어보지 않아도 된다. 마지막에 체크되지 않은 수가 소수이다. #include #include #include //max ..

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

https://www.acmicpc.net/problem/1373 1373번: 2진수 8진수 첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다. www.acmicpc.net [풀이] 2진수를 8진수로 변환하는 방법은 2진수의 제일 오른쪽부터 3개씩 10진수로 변환하는 것이다. 11001100 = 314 2진수는 가장 뒤에서부터 보고, 8진수는 가장 뒤에 계산된 수를 먼저 출력해야하므로 8진수를 stack에 저장하였다. #include #include #include //pow #include using namespace std; string Binary; stackOctal; void solution() { cin >> Binary; int Bs = Binary.size..