목록C, C++ 문제풀이 (39)
rueki
www.acmicpc.net/problem/2501 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net 첫 번째 풀이 #include #include #include #include using namespace std; int main(void) { int N,K; vector v; cin >> N >> K; for(int i = 1;i> K; for(int i = 1;i*i

www.acmicpc.net/problem/5635 5635번: 생일 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오. www.acmicpc.net #include #include #include #include using namespace std; int main(void) { int N; cin >>N; vector v(N); for(int i =0;i> v[i].second.second >> v[i].second.first >> v[i].first.second >> v[i].first.first; } sort(v.begin(), v.end()); /* pair sort 되는지 확인하기 위함 for(int i=0;i

물이 고일 때 해당 인덱스 위치에서 좌,우의 벽이 현재 인덱스 벽 높이보다 낮으면 빗물이 고일 수가 없다. 첫 번째 테스트 케이스에서 맨 왼쪽은 3, 현재 인덱스는 0, 오른쪽 인덱스는 1이라고 가정할 때 현재 인덱스에 대한 높이가 제일 낮기에 빗물이 고일 수 있다. 여기서 얼마나 고일 지 어떻게 계산할 지가 관건이다. 현재 인덱스의 왼쪽에 존재하는 인덱스들의 벽 높이 중에서 최대값과, 오른쪽에 해당하는 최대값을 구하여 둘 중의 최소값을 구해서 그 값에 현재 인덱스에 해당하는 벽 높이를 빼면 물 높이를 구할 수가 있다. 예를 들어보자. 인덱스 1에 해당하는 벽의 높이는 0, 왼쪽에서 제일 큰 벽 높이는 3, 오른쪽에서는 4이다. 물이 고일때 3을 넘을 경우 물이 넘치기 때문에 여기서 최소값을 구해주어야 ..

#include #include #include using namespace std; int main() { int n, b, r; string answer = ""; char a; cin >> n >> b; while (n > 0) { r = n % b; if (r >= 10) { answer += char(r - 10 + 'A'); } else { answer += char(r + '0'); } n = n / b; } reverse(answer.begin(), answer.end()); cout