[문제] 15953번: 상금 헌터 첫 번째 줄에 제이지가 상상력을 발휘하여 가정한 횟수 T(1 ≤ T ≤ 1,000)가 주어진다. 다음 T개 줄에는 한 줄에 하나씩 제이지가 해본 가정에 대한 정보가 주어진다. 각 줄에는 두 개의 음이 아닌 www.acmicpc.net [문제 풀이] - 각 회차 별 등수를 입력받아 해당 구간에 속하는 금액을 출력 - 등수를 입력할 때 본선에 진출하지 못한 순위와 순위권이 아닌 것을 예외처리 해야함 [코드] #include using namespace std; unsigned int cal(unsigned int a, unsigned b); int main() { unsigned int n, a=0, b=0; cin.sync_with_stdio(0); cin.tie(0); ..
[문제] 5086번: 배수와 약수 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. www.acmicpc.net [문제 풀이] - a가 b의 약수일 때, b는 a로 나누어 떨어짐 - a가 b의 배수일 때, a는 b로 나누어 떨어짐 [코드] #include #include using namespace std; string trans(unsigned int a, unsigned int b); int main() { unsigned int a, b; cin.sync_with_stdio(0); cin.tie(0); do { cin >> a >> b; if(a==0&&b==0) return 0; cout
[문제] Simple Array Sum | HackerRank Calculate the sum of integers in an array. www.hackerrank.com [문제 설명] - 배열의 모든 수를 더해 반환하기 [문제 풀이] - int형 배열이 아닌 vector를 사용하고 그 벡터의 size()를 사용하여 배열의 길이를 사용함 - for문을 사용하여 벡터의 크기만큼 덧셈을 수행함 [코드] int simpleArraySum(vector arr) { int sum=0; for(int i=0;i
[문제] Diagonal Difference | HackerRank Calculate the absolute difference of sums across the two diagonals of a square matrix. www.hackerrank.com [문제 설명] - 배열에서 교차되는 수 2개(왼쪽에서 오른쪽 대각선 방향, 오른쪽에서 왼쪽 대각선 방향)의 합의 절댓값을 구하기 [문제 풀이] - for문을 사용하여 더해지는 배열 대각선 방향의 합을 구함 > 왼쪽에서 오른쪽 방향 대각선의 합은: arr[i][i]를 사용하여 구할 수 있음 > 오른쪽에서 왼쪽 방향 대각선의 합은: arr[i][size-1-i]를 사용하여 구할 수 있음 * 이때 size는 배열의 행 혹은 열의 크기임 (정사각형 모양의 배..
[문제] 10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net [문제 풀이] - 동적할당으로 배열 생성 - 수 입력받기 - sort()로 정렬 - 출력하면서 이전 인덱스와 같은 숫자면 출력 X [코드] #include #include using namespace std; int main() { int tc; cin>>tc; int *a = new int[tc]; for(int i=0;i>a[i]; } sort(a,a+tc); cout
[문제] 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net [문제 풀이] - List 구조체 선언 후 - List 형식을 가지는 vector 생성 - compare 사용하여 sort()로 나이순 오름차순 정렬 [코드] #include #include #include using namespace std; struct List{ int age; string name; }; bool compare(const List &i, const List &j){ return i.age>tc; vector person; List lis..
[문제] 2693번: N번째 큰 수 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 배열 A의 원소 10개가 공백으로 구분되어 주어진다. 이 원소는 1보다 크거나 같고, 1,000 www.acmicpc.net [문제 풀이] - sort()사용하여 오름차순으로 정렬 - 3번째로 큰 수는 크기가 10인 배열에서 인덱스 7을 가짐 - 인덱스 7인 원소를 출력 [코드] #include #include using namespace std; int main() { int a[10]; int tc; cin>>tc; for(int i=0;i
[문제] Time Conversion | HackerRank Convert time from an AM/PM format to a 24 hour format. www.hackerrank.com [문제 설명] - 입력은 string으로 주어지면 12시 형식으로 주어짐 - AM과 PM을 보고 24시 시간으로 주어진 시간을 바꾸는 것이 목표 [문제 풀이] - AM인 경우에는 12시 일때 00시 인 것을 고려함 > 12시가 아닌 경우에는 시간을 그대로 반환 - PM인 경우에는 주어진 시에 12를 더해야 함 > 12시에 12를 더할 경우 24가 되므로 이는 예외로 따로 처리함 [코드] string timeConversion(string s) { int num; if(s[8]=='A') { if(s[0]=='1'&..
[문제] Left Rotation | HackerRank Given an array and a number, d, perform d left rotations on the array. www.hackerrank.com [문제 설명] - 예제를 보면 입력 받은 횟수 만큼 맨 앞의 원소가 왼쪽에서 나와 오른쪽으로 들어가고 있음 [문제 풀이] - 왼쪽에서 나와 오른쪽으로 들어가는 방식 -> 큐를 생각 - 백터로 반환 형식이 지정되어 있으므로 vector의 stl 사용 > v.front(): 맨 앞의 원소를 반환 > v.push_back(): 원소를 뒤에 넣음 > v.erase(): 해당 위치의 원소를 지움 [코드] vector rotateLeft(int d, vector arr) { int temp; for(..
[문제] 2959번: 거북이 첫째 줄에 거북이가 생각한 네 양의 정수 A, B, C, D가 주어진다. (0 num; v[i]=num; i++; } cout