목록백준 (497)
알고리즘 모음(C++)
문제 링크입니다. https://www.acmicpc.net/problem/1225 1225번: 이상한 곱셈 첫째 줄에 A와 B가 주어진다. 주어지는 두 수는 모두 10,000자리를 넘지 않는 음이 아닌 정수이다. 수가 0인 경우에는 0만 주어지며, 그 외의 경우 수는 0으로 시작하지 않는다. www.acmicpc.net 두 수가 주어졌을 때, 한자리씩 뽑아 곱한 뒤 더하는 과정을 전부 거친 후 합을 구하는 문제입니다. 문자열로 두 수를 받아 한자리씩 뽑아줍니다. 뽑은 두수를 곱하는 과정을 끝까지 반복해주면 됩니다. 자세한 것은 코드를 참고해주세요 #include #include #include #include #include #include #include #include using namespace ..
문제 링크입니다. https://www.acmicpc.net/problem/1969 1969번: DNA DNA란 어떤 유전물질을 구성하는 분자이다. 이 DNA는 서로 다른 4가지의 뉴클레오티드로 이루어져 있다(Adenine, Thymine, Guanine, Cytosine). 우리는 어떤 DNA의 물질을 표현할 때, 이 DNA를 이루는 뉴클레오 www.acmicpc.net 가장 거리가 작은 DNA를 찾은 뒤, 입력된 DNA들과의 거리 차이를 구하는 문제입니다. 거리 차이란, X와 Y의 DNA에서 다른 문자가 몇개인지를 찾는 것입니다. 따라서 1~N번까지의 DNA가 주어졌을 때, 1~N번까지의 DNA를 1자리씩 전부 확인합니다. 예제 입력을 통해 확인하면 첫번째 DNA는 T T A T T이니 T가 가장 많..
문제 링크입니다. https://www.acmicpc.net/problem/1371 1371번: 가장 많은 글자 첫째 줄부터 글의 문장이 주어진다. 글은 최대 50개의 줄로 이루어져 있고, 각 줄은 최대 50개의 글자로 이루어져 있다. 각 줄에는 공백과 알파벳 소문자만 있다. 문장에 알파벳은 적어도 하나 이 www.acmicpc.net 문장을 입력 받은 뒤, 가장 많이 사용된 알파벳을 출력하는 문제입니다. 알파벳의 개수를 저장하는 배열을 하나 만든 뒤, 문자들이 사용될 때마다 해당 칸을 1씩 늘려줍니다. 입력이 끝난 뒤, 가장 많이 사용된 알파벳의 개수를 찾아주면 됩니다. 자세한 것은 코드를 참고해주세요. #include #include #include #include #include #include #..
문제 링크입니다. https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 주어진 문자열을 뒤집는 문제입니다. 까다로운 조건이 있는데 확인해보면 1. 안의 문자는 뒤집어지지 않습니다. 2. 스페이스를 기준으로 뒤집어집니다. 2-1. 안에 스페이스가 있다면 뒤집지 않습니다. 3. 문자열의 길이가 100000이기에 문자열을 확인하는 과정에서 뒤집으면 시간초과의 가능성이 있습니다. 위의 조건만 신경쓰면 됩니다. 따라..
문제 링크입니다. https://www.acmicpc.net/problem/5598 5598번: 카이사르 암호 가이우스 율리우스 카이사르(Gaius Julius Caesar)는 고대 로마 군인이자 정치가였다. 카이사르는 비밀스럽게 편지를 쓸 때, 'A'를 'D로', 'B'를 'E'로, 'C'를 'F'로... 이런 식으로 알파벳 문자를 3개씩 건 www.acmicpc.net 주어진 알파벳에서 3자리 전의 알파벳를 출력하는 문제입니다. 3자리 전의 알파벳이 없다면 Z부터 뒤로 가게 됩니다. 따라서 26의 값을 더해주면 됩니다. 자세한 것은 코드를 참고해주세요 #include #include #include #include #include #include #include using namespace std; ..
문제 링크입니다. https://www.acmicpc.net/problem/11655 11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net ROTC13이란 x번째 문자에서 13을 더한 알파벳으로 바꾸는 문제입니다. B는 13을 미루면 O가 됩니다. 하지만 O는 13을 미루면 알파벳이 아니게 됨으로 26의 값을 빼서 알파벳으로 바꿔줘야 합니다. 그러면 B가 나옵니다. 자세한 것은 코드를 참고해주세요. #include #include #include #include #include #include #include using namespace std; char arr[101]; string ..
문제 링크입니다. https://www.acmicpc.net/problem/1769 1769번: 3의 배수 문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를 www.acmicpc.net 주어진 수가 3의 배수인지 구하는 문제입니다. 주어진 수의 합을 구한다 -> 합이 3의 배수인지 확인한다. -> 합이 2자리 수 이상이면 다시 합을 구한다.(이때 단계를 1 더한다.) 이를 구해주면 됩니다. 자세한 것은 코드를 참고해주세요 #include #include #include #include #include #include #include using namespace std..
문제 링크입니다. https://www.acmicpc.net/problem/15904 15904번: UCPC는 무엇의 약자일까? 첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 www.acmicpc.net 주어진 문장을 통해 UCPC를 만들 수 있는지 확인하는 문제입니다. UCPC를 만든다는 것은 UCPC가 순서대로 있는지를 확인하는 것입니다. 따라서 처음에 'U'가 있는지 확인 -> 있다면 'C'가 나오는지 확인 -> 있다면 'P'가 있는지 확인 -> 있다면 'C'가 있는지 확인 이러한 과정으로 UCPC를 생략을 통해 얻을 수 있는지 확인하면 됩니다. 자세..
문제 링크입니다. https://www.acmicpc.net/problem/9996 9996번: 한국이 그리울 땐 서버에 접속하지 총 N개의 줄에 걸쳐서, 입력으로 주어진 i번째 파일 이름이 패턴과 일치하면 "DA", 일치하지 않으면 "NE"를 출력한다. 참고로, "DA"는 크로아티어어로 "YES"를, "NE"는 "NO"를 의미한다. www.acmicpc.net 패턴이 주어졌을 때, 파일 이름이 패턴과 일치한지 구하는 문제입니다. 패턴은 *을 기준으로 앞과 뒤로 구분이 가능합니다. 파일이 이름의 처음과 마지막이 패턴의 앞과 뒤가 일치하면 됩니다. 여기서 중요한 것은 패턴을 확인할 때 중복되면 안된다는 것입니다. 예를 들어, 패턴이 ab*bc라고 할 때, abc는 패턴의 앞과 뒤는 같지만, b가 겹치기 때..
문제 링크입니다. https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 띄어쓰기를 기준으로 단어를 뒤집어 출력하는 문제입니다. 띄어쓰기가 나타나기 전까지 단어를 저장한 뒤, 띄어쓰기가 나타나면 단어를 뒤집어 출력해줍니다. string 형을 사용하면 reverse를 이용해 쉽게 뒤집을 수 있습니다. 자세한 것은 코드를 참고해주세요 #include #include #include #include #include #include #include u..
문제 링크입니다. https://www.acmicpc.net/problem/25372 25372번: 성택이의 은밀한 비밀번호 부산사이버대학교 학생 성택이는 엄마의 의뢰를 받아 주어진 문자열이 현관문 비밀번호에 사용 가능한지 알아내야 한다. 성택이는 공부해야 하므로 우리가 도와주자! 사용할 수 있는 비밀번호 www.acmicpc.net 입력받은 문자열의 길이를 판별하는 문제입니다. 자세한 것은 코드를 참고해주세요 #include #include #include #include #include #include #include using namespace std; int N; int main(){ cin.tie(0); cout.tie(0); cin >> N; for(int i = 1; i > x; if(x.s..
문제 링크입니다. https://www.acmicpc.net/problem/10822 10822번: 더하기 첫째 줄에 문자열 S가 주어진다. S의 길이는 최대 100이다. 포함되어있는 정수는 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net ,로 구분된 수들을 더하는 문제입니다. ,가 나타나기 전까지 수들을 저장한 뒤, ,가 나타나면 수를 더하고 0으로 초기화 해주면 됩니다. 자세한 것은 코드를 참고해주세요 #include #include #include #include #include #include #include using namespace std; string N; int sum, num; int main(){ cin.tie(0); cout.tie(0); cin >> N;..