본문 바로가기

반응형

SWEET NEW

(352)
[C++] BAEKJOON (1157) 단어 공부 문제 알파벳 대소문자로 이루어진 단어가 주어진다. 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어진 단어의 길이는 1,000,000을 넘지 않는다. 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 '?'를 출력한다. 풀이 #include #include // std::stirng, string.lenght() #include // std::pair #include // std::sort int main(void) { std::string word; std::cin >> word; std::pa..
[C++] BAEKJOON (10809) 알파벳 찾기 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. ​ 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 그리고 각각의 알파벳에 대해서 a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고 두 번째 글자는 1번째 위치이다. 풀이 #include #include const int alphabet = 26; int main(void) { std:..
[C++] BAEKJOON (1065) 한수 문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고 N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. ​ 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어지고, 첫째 줄에 1보다 크거나 같고 N보다 작거나 같은 한수의 개수를 출력한다. 풀이 #include #include int count(int N) { int count = 0; for (int i = 1; i > N; std::cout
[C++] BAEKJOON (4673) 셀프 넘버 문제 셀프 넘버는 1949년 인도 수학자 D.R.Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자릿수를 더하는 함수라고 정의하자 예를 들어 d(75) = 75 + 7 + 5 = 87이다. ​ 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))),... 과 같은 무한수열을 만들 수 있다. 예를 들어 33으로 시작했다면 다음 수 d(33) = 33 + 3 + 3 = 39이다. 그다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런 식으로 다음과 같은 수열을 만들 수 있다. 33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ... ​ n을 ..
[C++] 벡터: STL std::vector std::vector는 헤더 파일에 정의되어 있으며, 원소의 개수에 따라 자유롭게 크기가 변할 수 있는 동적 배열이다. ​ ​std::vector vec;으로 선언할 수 있다. Type에는 int, double 등 변수 타입을 지정할 수 있으며 vec에 변수명을 선언해 준다. std::vector vec;// int형 vector vec 선언 std::vector vec(10);// int형 vecotr vec 선언 // '10개'의 int형 원소 저장 공간 할당 및 '0'으로 초기화 std::vector vec(5, 3);// int형 vector vec 선언 // '5개'의 int형 원소 저장 공간 할당 및 '3'으로 초기화 std::vector vec = {1, 2}; // vector는 동적 배열..
[C++] BAEKJOON (15596) 정수 N개의 합 문제 정수 n 개가 주어졌을 때, n 개의 합을 구하는 함수를 작성하시오. 작성해야 함수는 다음과 같다. ​ long long sum(std::vector &a); · a: 합을 구해야 하는 정수 n 개가 저장되어 있는 배열 (0 ≤ a[i] ≤ 1,000,000, 1 ≤ n ≤ 3,000,000) · 리턴 값: a에 포함되어 있는 정수 n 개의 합 풀이 #include long long sum(std::vector &a) { long long ans = 0; for(int i = 0; i < a.size(); ++i){ ans += a[i]; } return ans; } 출처: BAEKJOON
[C++] BAEKJOON (4344) 평균은 넘겠지 문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. ​ 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N이 첫 수로 주어진다. (1 ≤ N ≤ 1000, N은 정수) 이어서 N 명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 풀이 #include #include // std::fixed, std::setprecision() int main(void) { int C; std::cin >> C; for (int j = 0; j < C; ++j) { int N; st..
[C++] BAEKJOON (8958) OX퀴즈 문제 "OOXXOXXOOO"와 같은 OX 퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"이 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX 퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. ​ 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X 만으로 이루어져 있다. 각 테스트 케이스마다 점수를 출력한다. 풀이 #include #include // string.length() int main(void..

반응형