본문 바로가기

백준52

[1929번] 소수 구하기 1929번: 소수 구하기 www.acmicpc.net M이상 N이하의 소수를 모두 출력하는 문제이다. 범위가 1 > N; for (int i = 2; i*i 2019. 4. 17.
[1978번] 소수 찾기 1978번: 소수 찾기 www.acmicpc.net n개의 수가 주어지고, 주어진 수들 중 소수의 개수를 구하는 문제다. 소수는 약수가 1과 자기 자신 밖에 없는 수이다. 그렇다면 소수를 구하려면, 자기 자신 보다 작은 수 들을 나눴을 때, 나눠 지는 것이 없다면 소수라고 할 수 있다. 자신보다 작은 수를 나누다가 나머지가 0 즉, 나눠지는 수가 있으면 합성수라고 체크를 해주고 반복문을 빠져나온다 /*1978번 소수찾기*/ #include #include using namespace std; int n; int arr[101]; int num[1001];//0일 때 소수, -1일 때 합성수 or 1 int prime_cnt; void eratos(int n) { if (n == 1) num[n] = -1.. 2019. 4. 17.
[1037번] 약수 1037번: 약수 www.acmicpc.net 간단한 문제 입력 첫번째 줄에 진짜 약수의 개수 (진짜 약수 : 1과 본인을 제외한 약수들) 두번째 줄에 진짜 약수들을 입력한다. 약수의 성질?을 파악해보면 약수들을 구했을 때, 좌측과 우측 끝부터 한칸씩 짝을 이뤄 곱하면 원래 수가 된다. ex) 12의 약수 1 , 2 , 3 , 4 , 6 , 12 --> (1,12)/(2,6)/(3,4) 약수의 개수가 홀수 개라도 가운데 하나를 2번 곱하면 원래 수가 된다. 그렇기 때문에 입력받은 진짜 약수들을 정렬해서 맨 앞과 맨 뒤를 곱해주면 된다. /*1037번 약수*/ #include #include using namespace std; int div_cnt; int divisor[50]; int main() { .. 2019. 4. 10.
[9663번] N-Queen 9663번: N-Queen www.acmicpc.net 대표적인 백트래킹 문제 N개의 퀸을 N * N 크기의 체스판에 서로 공격이 닿지 않게 놓는 문제다. 이 문제를 풀 때 생각 해야할 점은 1. 이 전에 퀸을 놓았던 행에는 놓을수 없다 --> 각 행 마다 놓을수 있는 퀸의 개수는 1개 2. 이 전에 퀸을 놓았던 열에는 놓을 수 없다. --> 각 열 마다 놓을 수 있는 퀸의 개수는 1개 3. 이 전에 놓았던 퀸의 대각선 범위에는 놓을 수 없다. 기준을 행으로 잡았을 때, 2차원 배열이 아닌 1차원 배열을 이용해서 배열의 인덱스는 행의 위치, 배열의 원소는 그 행에서 놓여진 열의 위치로 표현할 수 있다. 또한 주의 할 점은 맵에 퀸의 공격범위를 하나하나 넣지 말고 규칙을 찾아서 해결해야한다. Q1(a.b).. 2019. 4. 10.