본문 바로가기

반응형

Coding

백준 온라인 저지(Baekjoon Online Judge) - 11404 : 플로이드 https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net #include #include using namespace std; const int INF = 1e9; // 무한대 값 int main() { int n, m; cin >> n >> m; vector dist(n + 1, vector(n + 1, INF)); // 인접 행렬 생성 및 초기화 // 자기 자신으로 가는 경로는 0으로 설정 for (int i = 1; i > a >> b >> c; .. 더보기
백준 온라인 저지(Baekjoon Online Judge) - 16395 : 파스칼의 삼각형 https://www.acmicpc.net/problem/16395 16395번: 파스칼의 삼각형 파스칼의 삼각형은 이항계수를 삼각형 형태로 배열한 것인데, 블레즈 파스칼(1623-1662)을 따라 이름 붙여졌다. 단순한 형태로, 파스칼의 삼각형은 다음과 같은 방법으로 만들 수 있다. N번째 행 www.acmicpc.net #include #include using namespace std; // 이항 계수 계산 함수 int binomialCoefficient(int n, int k) { // 계산 결과를 저장할 동적 배열 생성 vector dp(n + 1, vector(k + 1, 0)); // 초기값 설정 for (int i = 0; i n >> k; int res = binomialCoefficie.. 더보기
백준 온라인 저지(Baekjoon Online Judge) - 2805 : 나무 자르기 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net #include #include using namespace std; long BinarySearch(long* trees, long numberOfTrees, long targetLength) { long availableMinHeight = 0; long availableMaxHeight = trees[numberOfTrees - 1]; long resu.. 더보기
백준 온라인 저지(Baekjoon Online Judge) - 2720 : 세탁소 사장 동혁 https://www.acmicpc.net/problem/2720 2720번: 세탁소 사장 동혁 각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다. www.acmicpc.net #include using namespace std; int main() { int t; cin >> t; while (t--) { int c; cin >> c; int quarters = c / 25; c -= quarters * 25; int dimes = c / 10; c -= dimes * 10; int nickels = c / 5; c -= nickels * 5; int pennies = c; cout 더보기
백준 온라인 저지(Baekjoon Online Judge) - 2903 : 중앙 이동 알고리즘 https://www.acmicpc.net/problem/2903 2903번: 중앙 이동 알고리즘 상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다. www.acmicpc.net #include #include #include #include #include using namespace std; int main(int argc, char *argv[]) { int n; int x = 2; cin >> n; while(n--) { x += (x - 1); } x *= x; cout 더보기
백준 온라인 저지(Baekjoon Online Judge) - 2501 : 약수 구하기 https://www.acmicpc.net/problem/2501 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net #include using namespace std; int main() { int n, k; cin >> n >> k; int count = 0; for (int i = 1; i 더보기
백준 온라인 저지(Baekjoon Online Judge) - 9506 : 약수들의 합 https://www.acmicpc.net/problem/9506 9506번: 약수들의 합 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라. www.acmicpc.net #include #include #include using namespace std; bool isPerfect(int n){ int sum = 0; vector divisors; for(int i=1;i*i 더보기
백준 온라인 저지(Baekjoon Online Judge) - 1463 : 1로 만들기 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net #include #include using namespace std; const int MAX = 1000001; int dp[MAX]; int memo[MAX]; int makeOne(int n) { if (n == 1) return 0; // 기저 조건 // memoization if (memo[n] != -1) return memo[n]; // dp 점화식 dp[n] = makeOne(n - 1) + 1; if (n % 2 == 0) dp[n] = min(dp[n], makeOne(n / 2) + 1); .. 더보기

반응형