전체 글 204

두 정수 사이의 합 (C++)

https://programmers.co.kr/learn/courses/30/lessons/12912 코딩테스트 연습 - 두 정수 사이의 합 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우 programmers.co.kr #include #include using namespace std; long long solution(int a, int b) { long long answer = 0; if (a

음양 더하기 (C++)

https://programmers.co.kr/learn/courses/30/lessons/76501 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr #include #include using namespace std; int solution(vector absolutes, vector signs) { int answer = 0; vector v; for (int i = 0; i < absolutes.size(); i++) { int tmp = 0; if (signs[i] == true..

두 개 뽑아서 더하기 (C++)

https://programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr #include #include #include using namespace std; vector solution(vector numbers) { vector answer; int tmp_ans; for (int i = 0; i < numbers.size()-1; i++) { for (int j = i+1; j <..

[백준 #11656] 접미사 배열 (C++)

https://www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 문자열을 입력받고 변수 i를 1씩 증가시켜가며 i부터 문자열 끝까지 추출하여 새로운 문자열을 만든 후, 이것을 벡터에 넣어주었다. 그다음 벡터를 오름차순으로 정렬한 후 출력해 주었다. #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); string s, sub; vector vec; cin >> s; int leng = s.size(); fo..

[백준 #5576] 콘테스트 (C++)

https://www.acmicpc.net/problem/5576 5576번: 콘테스트 최근 온라인에서의 프로그래밍 콘테스트가 열렸다. W 대학과 K 대학의 컴퓨터 클럽은 이전부터 라이벌 관계에있어,이 콘테스트를 이용하여 양자의 우열을 정하자라는 것이되었다. 이번이 두 대 www.acmicpc.net w 대학의 각 참가자 점수를 벡터 w에, k 대학의 각 참가자 점수를 벡터 k에 넣은 후 둘 다 내림차순으로 정렬해 주었다. (득점이 높은 사람 3명의 점수를 합산해야 하기 때문에) 그 후 벡터 0번째부터 2번째 요소까지 더해 각 대학의 합산 점수를 구한 후 출력해 주었다. #include #include #include using namespace std; int main() { ios::sync_with..

[백준 #11399] ATM (C++)

https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 돈을 인출하는데 필요한 시간의 합의 최솟값을 구하려면 오름차순으로 정렬한 후 더해야 하므로, 각 사람이 돈을 인출하는데 걸린 시간 p를 입력하여 벡터 v에 넣은 후 오름차순으로 정렬해 주었다. 그리고 이들을 순차적으로 더한 합을 넣을 벡터를 만들어 그 안에 넣어준 후, 전체 합을 구해 출력하였다. #include #include #include using namespace std; int main() { ios::sync_wi..

[백준 #1427] 소트인사이드 (C++)

https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 문자를 입력받아 숫자로 변환한 후 벡터에 넣어 내림차순으로 정렬하고 출력하였다. #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; int main() { char c[11]; int num[11]; vector v; scanf("%s", c); for (int i = 0; c[i] != '\0'; i++) { num[i] = c[i] - '0'; v.push_back(num[i]); } sor..

[백준 #6679] 싱기한 네자리 숫자 (C++)

https://www.acmicpc.net/problem/6679 6679번: 싱기한 네자리 숫자 싱기한 네자리 숫자란, [1000,9999]인 10진수 숫자중에서, 다음의 조건을 만족하는 숫자를 말한다. 숫자를 10진수, 12진수, 16진수로 나타낸 다음, 각각의 숫자에 대해, 각 숫자의 자리수를 더했을 www.acmicpc.net 진법에 맞게 변환해 주는 함수를 정의하고 for 문을 통해 1000부터 10000까지 돌면서 10진수, 12진수, 16진수의 각 자리수를 더했을 때 세 값이 같은 수를 출력하였다. #include using namespace std; int digit(int n, int num) { int result = 0; while (n) { result += n % num; n /=..

[백준 #1065] 한수 (C++)

https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 한수는 어떤 정수의 자릿수가 등차수열을 이루는 수이다. 두 자릿수는 10의 자리와 1의 자리뿐이라 등차수열인지 판단할 수 없으므로 모두 한수이다. 따라서 입력한 n이 100보다 작으면 한수의 개수는 n 개이다. n이 100보다 크다면, 한수는 99 + (100부터 n 사이에 한수의 개수) 개일 것이다. 100 이상일 경우 한수인지 판단하기 위해 100의 자리, 10의 자리, 1의 자리 수를 구하고, ..

[백준 #2502] 떡 먹는 호랑이 (C++)

https://www.acmicpc.net/problem/2502 2502번: 떡 먹는 호랑이 첫줄에 첫 날에 준 떡의 개수 A를 출력하고 그 다음 둘째 줄에는 둘째 날에 준 떡의 개수 B를 출력한다. 이 문제에서 주어진 D, K에 대해서는 항상 정수 A, B (1≤A≤B)가 존재한다. www.acmicpc.net 첫날의 준 떡의 개수는 A, 둘째 날에 준 떡의 개수는 B이므로 셋째 날에는 A+B, 넷째 날에는 A+2B 식으로 늘어난다. A와 B의 계수를 담을 배열을 각각 만든 후 a[1] = 1, a[2] = 0 b[1] = 0, b[2] = 1 값을 미리 준다. 그다음부터는 피보나치의 수열처럼 계산하면 되므로 for 문을 사용해 값을 얻을 수 있다. 그다음 새로운 for 문을 통해 첫째 날 주는 떡의..