문제풀이/BOJ
[C++ 백준] 1003 피보나치 함수
[C++ 백준] 1003 피보나치 함수
2021.12.18블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 다음 소스는 N번째 피보나치 수를 구하는 C++함수이다. int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); } } fibonacci(3)을 호출하면 다음과 같은 일이 일어난다. fibonacci(3)은 fibonacci(2)와 fibonacci(1) 호출한다. fibonacci(2)는 fibonacci(1)과 fibonacci(0)을 호출한다. fibonacci(1)은 1을 출력하고 1을 리턴한다. fibonacc..
[C++ 백준] 15652 N과 M (4)
[C++ 백준] 15652 N과 M (4)
2021.12.12블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 M개를 고른 수열 (1
[C++ 백준] 1932 정수 삼각형
[C++ 백준] 1932 정수 삼각형
2021.11.22블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 삼각형의 맨 위층부터 시작해서 아래에 있는 수 중 하나를 선택하여 내려올때, 선택된 수의 합이 최대가 되는 경로를 구하는 프로그램을 작성하시오. (현재 층에서 선택 된 수의 왼/오른쪽 아래 대각선만 선택 할 수 있다.) 첫째 줄에 삼각형의 크기(1
[C++ 백준] 15650 N과 M (2)
[C++ 백준] 15650 N과 M (2)
2021.10.30블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 (1
[C++ 백준] 2108 통계학
[C++ 백준] 2108 통계학
2021.10.04블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 다음 4가지의 기본 통계 값을 구하는 프로그램을 작성하시오. 단, N(1 x; int sum = 0; int index = 0; int max = 0; vector list; for (int i = 0; i > num; sum += num; if (num max) max = arr[index]; list.push_back(num); } // 평균, 소수점 이하 첫째 자리 반올림 float avg = sum / (float)x; cout
[C++ 백준] 1181 단어 정렬
[C++ 백준] 1181 단어 정렬
2021.08.26블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 1. 길이가 짧은 것부터 2. 길이가 같으면 사전 순으로 풀이 전략 algorithm의 sort와 vector를 이용해서 정렬한다. 정렬 기준은 사이즈가 같으면 두 값을 비교, 다르면 오름차순 정렬한다. 소스 코드 #include #include #include #include using namespace std; bool Compare( string a, string b ) { if (a.size() == b.size()) { int x = a.compare(b); return x < 0; } else return (a.size..
[C++ 백준] 18870 좌표 압축
[C++ 백준] 18870 좌표 압축
2021.08.18블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 수직선 위에 N개(1 x; vec.push_back(x); org.push_back(x); } sort(vec.begin(), vec.end()); vec.resize(unique(vec.begin(), vec.end()) - vec.begin()); for (int x : org) { int print = lower_bound(vec.begin(), vec.end(), x) - vec.begin(); cout
[C++ 백준] 11651 좌표 정렬하기2
[C++ 백준] 11651 좌표 정렬하기2
2021.06.14블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 2차원 평면 위의 점 N개(1 x >> y; vec.push_back(make_pair(x,y)); } sort(vec.begin(), vec.end(), Comp); for (int i = 0; i < n; ++i) { cout
[C++ 백준] 1929 소수 구하기
[C++ 백준] 1929 소수 구하기
2021.06.13블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. (단, M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. (1 n; for (int i = m; i
[C++ 백준] 1065 한수
[C++ 백준] 1065 한수
2021.06.12블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열: 연속된 두 개의 수의 차이가 일정한 수열 N이 주어졌을 때, 1보다 크거나 같고 N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. (N (3-2) == (2-1): 한수 소스 코드 #include using namespace std; int GetNum( int x ) { int result = 0; if (x x; cout
[C++ 백준] 1002 터렛
[C++ 백준] 1002 터렛
2021.06.09블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 조규현의 좌표(X1, Y1)와 백승환의 좌표(X2, Y2)가 주어지고, 조규현이 계산한 류재명과의 거리 r1과 백승환이 계산한 류재명과의 거리 r2가 주어졌을 때, 류재명이 있을 수 있는 좌표의 수를 출력하는 프로그램을 작성하시오. 단, 위치의 개수가 무한대일 경우에는 -1을 출력한다. 첫째줄에 테스트 케이스의 개수 T가 주어지며, 각 테스트 케이스의 한 줄에 x1, y1, r1, x2, y2, r2가 주어진다. (단, -10,000 > x >> y >> r >> x2 >> y2 >> r2; double d = sqrt(((x - x2) * (x - x2)) + ((y - y2) *(y - y2))); double sub = r > ..
[C++ 백준] 1436 영화감독 숌
[C++ 백준] 1436 영화감독 숌
2021.05.31블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다. 문제 설명 종말의 숫자란 어떤 수에 6이 적어도 3개 이상 연속으로 들어가는 수를 말합니다. 종말의 숫자를 크기대로 나열해서 제목으로 한다면, N번째 영화의 제목에 들어간 숫자를 출력하는 프로그램을 작성하시오. ex. 1번째->666, 2번째->1666, 3번째->2666..... N번째->? 풀이 전략 판별하려는 숫자가 666이 포함된 숫자인지 알려면 1000으로 나눴을 때 나머지가 666이면 된다. 만약 666이 포함된 경우가 아닐 경우 자릿수를 줄여가며 판별한다. N번째에 도달할 때까지 반복 소스 코드 #include using namespace std; int main() { int n; cin >> n; int ans = 0; int ..