목록Study/Algorithm (400)
hwooo
https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net 코드 #include int main() { int N, M; int A[100][100], B[100][100]; scanf("%d %d", &N, &M); for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { scanf("%d", &A[i][j]); } } for (int i = 0; i < N; i++) { for (int ..
https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 풀이 옷의 종류들을 분류해서 같은 종류일 때는 옷의 갯수를 증가, 다른 종류일 때는 경우의 수를 계산함. 코드 #include #include #include #include using namespace std; vector V; bool cmp(pair a, pair b) { return a.first ..
https://www.acmicpc.net/problem/2587 2587번: 대표값2 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + www.acmicpc.net 코드 #include #include using namespace std; int main() { int A[5], avg = 0; for (int i = 0; i < 5; i++) { scanf("%d", &A[i]); avg += A[i]; } sort(A, A + 5); printf("%d\n%d", avg / 5, A[2]); return 0; }
https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 코드 #include int main(){ int N[31]={0, }, n; for(int i=0;i
https://www.acmicpc.net/problem/2920 2920번: 음계 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8 www.acmicpc.net 코드 #include int main() { int A[8], i; for (i = 0; i = A[i + 1]) break; } if (i != 7) printf("mixed\n"); else printf("..
https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 풀이 가장 가치가 큰 동전부터 계산해서 필요한 동전 개수의 최솟값을 구한다. 코드 #include int main() { int N, K, A[14], cnt = 0; scanf("%d %d", &N, &K); for (int i = 0; i < N; i++) scanf("%d", &A[i]); for (int i = N - 1; i..
https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 풀이 66606과 같이 666이 아닌 6이 있는 경우도 포함시키기 위해 n이 0일 때까지 반복함. 66666과 같이 연속된 6의 갯수가 3개 이상일 때도 있으므로 6이 연속으로 3번 나오면 바로 함수를 종료함 코드 #include bool Is_six(int n) { int cnt = 0; while (n != 0) { if (n % 10 == 6) { while (n % 10 == 6) { n..
https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net 풀이 행성계 진입/이탈 횟수 : 출발점을 감싸고 있는 원의 갯수 + 도착점을 감싸고 있는 원의 갯수 이 때 출발점과 도착점이 같은 원 안에 있으면 행성계 진입/이탈이 필요 없으므로 0 코드 #include int Is_in(int x, int y, int rx, int ry, int r) { int d = (x - rx)*(x - rx) + (y - ry)*(y - ry); if (..