목록백준 (529)
알고리즘 모음(C++)
문제 링크입니다. https://www.acmicpc.net/problem/4999 4999번: 아! 입력은 두 줄로 이루어져 있다. 첫째 줄은 재환이가 가장 길게 낼 수 있는 "aaah"이다. 둘째 줄은 의사가 듣기를 원하는 "aah"이다. 두 문자열은 모두 a와 h로만 이루어져 있다. a의 개수는 0보다 크거 www.acmicpc.net 두 문자열의 길이를 비교하면 되는 문제였습니다. 자세한 것은 코드를 참고해주세요. #include #include #include #include #include #include #include #include #include using namespace std; string x, y; int main(){ cin.tie(0); cout.tie(0); cin >> x..
문제 링크입니다. https://www.acmicpc.net/problem/1120 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net A의 앞과 뒤에 원하는 알파벳을 추가해 B와 같은 길이로 만들 때, A와 B의 차이를 구하는 문제입니다. 문제를 푸는 키는 원하는 알파벳을 추가한다는 것이였습니다. 따라서 A와 B를 비교해 차이가 가장 작은 위치를 찾습니다. 해당 위치에서 남은 길이를 B와 똑같이 추가하면 되니 이때의 차이가 답입니다. 자세한 것은 코드를 참고해주세요 #in..
문제 링크입니다. https://www.acmicpc.net/problem/2935 2935번: 소음 수업 시간에 떠드는 두 학생이 있다. 두 학생은 수업에 집중하는 대신에 글로벌 경제 위기에 대해서 토론하고 있었다. 토론이 점점 과열되면서 두 학생은 목소리를 높였고, 결국 선생님은 크게 www.acmicpc.net 더하기와 곱하기를 하는 문제입니다. 숫자의 자릿수가 최대 100이기에 일반적인 정수형 변수로는 구할 수 없습니다. 따라서 문자열을 통해 답을 구해야합니다. 곱하기의 경우에는 0의 개수만 샌 뒤, 이를 뒤에 붙여주기만 하면 됩니다. 더하기의 경우에는 2개 문자열의 0의 개수를 샌 뒤, 같다면 시작을 2로 하고 0을 붙여줍니다. 다르다면 해당 위치에 1을 놓기만 해주면 됩니다. 자세한 것은 코드..
문제 링크입니다. https://www.acmicpc.net/problem/1919 1919번: 애너그램 만들기 두 영어 단어가 철자의 순서를 뒤바꾸어 같아질 수 있을 때, 그러한 두 단어를 서로 애너그램 관계에 있다고 한다. 예를 들면 occurs 라는 영어 단어와 succor 는 서로 애너그램 관계에 있는데, occurs www.acmicpc.net 두 문자열에서 최소한의 문자를 없애 애너그램으로 만드는 문제입니다. 문자를 지우는 경우는 2가지 입니다. 1. 알파벳이 둘 다 있지만 개수가 다른경우 2. 한 문자열에만 알파벳이 있는 경우 1번째 경우에는 알파벳 개수의 차이만큼만 없애주면 되고, 2번째 경우에는 없는 모든 알파벳을 없애줘야합니다. 자세한 것은 코드를 참고해주세요 #include #incl..
문제 링크입니다. https://www.acmicpc.net/problem/5218 5218번: 알파벳 거리 첫째 줄에 테스트 케이스의 수 (> N; for(int i = 0; i ..
문제 링크입니다. https://www.acmicpc.net/problem/1652 1652번: 누울 자리를 찾아라 첫째 줄에 방의 크기 N이 주어진다. N은 1이상 100이하의 정수이다. 그 다음 N줄에 걸쳐 N개의 문자가 들어오는데 '.'은 아무것도 없는 곳을 의미하고, 'X'는 짐이 있는 곳을 의미한다. www.acmicpc.net 가로 혹은 세로로 누울 자리를 찾는 문제입니다. 누울 자리는 항상 2칸 이상이여야 하며, 끝에는 짐이나 벽에 닿아야합니다. 자세한 것은 코드를 참고해주세요 #include #include #include #include #include #include #include using namespace std; int N; char map[111][111]; int row, 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; ..