본문 바로가기

algorithm28

[C++] 1978::소수찾기 링크 https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 문제 1978::소수찾기 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 접근방식 n을 입력받은 뒤 차례로 n개의 수를 입력받고 각 숫자를 1부터 나누기 했을때 약수의 개수가 2개인 소수의 개수를 찾아내었다. 주의할 점 1. 1부터 1씩 키워가며 약수를 구하는 과정에서 nums[i]본인까지 나누어주어야 한다. > n; int * num = new int[n]; //올바른 코드 int n; cin >> n; int nums[n];.. 2022. 10. 8.
[C++] 2693번::N번째 큰수 문제링크 https://www.acmicpc.net/problem/2693 2693번: N번째 큰 수 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 배열 A의 원소 10개가 공백으로 구분되어 주어진다. 이 원소는 1보다 크거나 같고, 1,000 www.acmicpc.net 문제 배열 A가 주어졌을 때, N번째 큰 값을 출력하는 프로그램을 작성하시오. 배열 A의 크기는 항상 10이고, 자연수만 가지고 있다. N은 항상 3이다. 접근방식 T를 입력받아서 2차원 배열을 동적할당해주기만 하면 어렵지 않은 문제였다. 그 뒤로는 sort 함수를 사용하여 오름차순 정렬을 하고 출력만 하면 된다. 주의할 점 C++에서 동적할당은 C언어와 달리 m.. 2022. 10. 7.
[C++] 2609번 최대공약수 최소공배수 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 문제 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. 접근방식 입력받는 두 수를 N1, N2라고 할 때 그 중 큰수를 commonMultiple, 작은수를 commonDivisor 값에 넣는다. commonDivisor 값을 1씩 줄여가며 최대공약수를 찾아내고 commonMultiple 값을 1씩 늘려가며 최소공배수를 찾아냈다. 코드 #include using namespace std; //backjoon 2609 최대공약수.. 2022. 10. 7.
[C++] 2309_일곱난쟁이 https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 접근방식 9명의 난쟁이의 키를 받아서 거직 난쟁이 둘을 걸러 7명 난쟁이 키의 합이 100이 되도록 하는 문제이다. 우선 sort함수를 사용하여 오름차순 정리를 해주었다. 7명의 난쟁이의 키의 합이 100인 걸 구하는게 아니라 반대로 9명의 난쟁이 키의 합에서 100을 빼서 dif에 저장한 뒤, 두명의 난쟁이(a,b) 키의 합이 dif와 같아지는 값을 찾아서 답을 구하였다. 코드 #include #incl.. 2022. 10. 6.
반복문 탈출 : break과 continue의 차이 반복문에는 대표적으로 for문과 while문이 있다. for문과 while문 비교초기문, 조건문, 증감문 세가지를 모두 가져야 하는 건 같지만 그 위치가 다르다.  for문의 처리 순서는 아래와 같다.  반복문의 흐름제어1) break 문- 반복문이 실행되고 있는 시점에서 가장 근접한 반복문(루프) 탈출.- 여러 개의 루프가 중첩된 경우 현재 위치한 루프 하나만 탈출. 2) continue문- 반복도중 처리를 중단하고 반복문의 시작 위치로 이동.- 정밀한 제어 구조를 만들 때 사용. 3) goto문- 지정한 곳으로 무조건 점프- 짧은 코드에서는 사용하기 쉬운 제어문이지만 프로그램의 구조를 해치기 쉬워 이식성과 재사용이 어려움. 2022. 10. 6.
[C++] 10870_피보나치 수5 https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가www.acmicpc.net유명한 문제라 어렵지는 않았다.f1=f2;f2=f3;의 순서만 조심하면 될 것 같다.    #include using namespace std;//backjoon 10870 피보나치수int main(void){ int n; int f1=0; int f2=1; int f3; cin >> n; if(n>1){ n-=1; while(n--){ f3 = f1+f2.. 2022. 10. 5.
[C++] 2460_지능형 기차 2 https://www.acmicpc.net/problem/2460 2460번: 지능형 기차 2최근에 개발된 지능형 기차가 1번역(출발역)부터 10번역(종착역)까지 10개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다.www.acmicpc.net총 10개의 정차역을 지나면서 각 정차역에서 최대의 정원수인 경우 그 정원수를 출력하는 문제로 어렵지 않았다.  #include using namespace std;//backjoon 2460int main(void){ int getIn=0; // 타는 사람들 int getOut =0; // 내리는 사람들 int max =0; //최대 정원 수 int stationPeople=0; // 각 정.. 2022. 10. 5.
[C++] 10818_최대,최소 문제https://www.acmicpc.net/problem/10818 10818번: 최소, 최대첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.www.acmicpc.netN개의 정수가 주어지고 최댓값과 최솟값을 구하는 프로그램이다. 배열을 사용하는 방법과 배열을 사용하지 않는 방법, 2가지로 방법으로 문제를 풀어보았다.  풀이과정 1#include #include using namespace std;//backjoon 10818 MAX, MIN -ver1 - sort함수, 배열 사용 int main(int argc, const .. 2022. 10. 4.