본문 바로가기

c++831

[백준] 2609번 : 최대공약수와 최소공배수 (C++) 10984번: 내 학점을 구해줘 문제 ) 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. 입력 : 첫째 줄에 n이 주어진다. n은 90보다 작거나 같은 자연수이다. 출력 : 첫째 줄에 n번째 피보나치 수를 출력한다. 풀이) C++의 경우에는 숫자 자료형에서 int가 21억까지.. 2023. 2. 2.
[백준] 2609번 : 최대공약수와 최소공배수 (C++) 2609번 : 최대공약수와 최소공배수 문제 ) 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. 입력 : 첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다. 출력 : 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. 풀이) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include using namespace std; int main() { int a, b; cin >> a >> b; int GCD = 0; for (int i = 1; i 2023. 1. 31.
[백준] 10989번 : 수 정렬하기 3 (C++) 10989번 : 수 정렬하기 3 문제 ) N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 : 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 : 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 풀이) 계수 정렬을 이용하여 문제를 풀어주어야 한다. C++의 기본적인 입출력 방법인 cin과 cout을 사용할 경우에는 printf와 scanf보다 속도가 느리므로, cin.tie(NULL) , ios::sync_with_studio(false) 그리고 endl 대신 "\n"을 사용해주어야 한다. 1 2 3 4 5 6 7 8 9.. 2023. 1. 30.
[백준] 1431번 : 시리얼 번호 (C++) 1431번 : 시리얼 번호 문제 ) 다솜이는 기타를 많이 가지고 있다. 그리고 각각의 기타는 모두 다른 시리얼 번호를 가지고 있다. 다솜이는 기타를 빨리 찾아서 빨리 사람들에게 연주해주기 위해서 기타를 시리얼 번호 순서대로 정렬하고자 한다. 모든 시리얼 번호는 알파벳 대문자 (A-Z)와 숫자 (0-9)로 이루어져 있다. 시리얼번호 A가 시리얼번호 B의 앞에 오는 경우는 다음과 같다. 1. A와 B의 길이가 다르면, 짧은 것이 먼저 온다. 2. 만약 서로 길이가 같다면, A의 모든 자리수의 합과 B의 모든 자리수의 합을 비교해서 작은 합을 가지는 것이 먼저온다. (숫자인 것만 더한다) 3. 만약 1,2번 둘 조건으로도 비교할 수 없으면, 사전순으로 비교한다. 숫자가 알파벳보다 사전순으로 작다. 시리얼이 주.. 2023. 1. 30.