본문 바로가기

CS(Computer Science)지식71

[C++] 백준 15312번: 이름 궁합 문제 링크 https://www.acmicpc.net/problem/15312 풀이 방법 위 문제는 처음 입력받은 두 문자열을 한 글자씩 번갈아 가면서 대응되는 숫자 값으로 변경하여 문제를 해결할 수 있다. 해당 문제를 푼 시퀀스는 다음과 같다. 코드는 두 개의 문자열 'A'와 'B'를 입력받아 각 문자에 대응하는 값을 계산한다. 입력된 문자열의 길이만큼 반복하면서, 각 문자에 대응하는 알파벳 값으로 계산한 결과를 순차적으로 'result' 벡터에 저장한다. 그 후, 'result' 벡터의 크기가 2보다 큰 동안 아래 과정을 반복한다. 'result' 벡터를 순회하면서 현재 값과 다음 값의 합을 계산하고, 만약 합이 10 이상이면 10을 뺀 값을 'tempResult' 벡터에 저장한다. 계산이 끝나면 '.. 2024. 2. 4.
[C++] 백준 9536번: 여우는 어떻게 울지? 문제 링크 https://www.acmicpc.net/problem/9536 풀이 방법 이 문제는 주어진 녹음 결과에서 동물의 울음소리를 찾는 문제입니다. 주어진 녹음 결과 문자열과 동물의 울음소리가 주어졌을 때, 동물의 울음소리 중에서 녹음 결과에 없는 소리를 찾아 출력하는 문제이다. 다음과 같은 시퀀스로 문제를 해결 할 수 있다. 입력 받은 녹음 결과 문자열을 공백을 기준으로 분할하여 벡터에 저장한다. "what does the fox say?"라는 문장이 나올 때까지 동물의 울음소리를 입력 받아 동물의 울음소리 중에서 실제 녹음 결과에 포함되는 소리를 벡터에 저장한다. 모든 녹음 결과와 동물의 울음소리를 비교하여 녹음 결과에 없는 동물의 울음소리를 찾아 결과 벡터에 저장합니다. 결과 벡터에 저장된 .. 2024. 2. 4.
[C++] 백준 2999번: 비밀 이메일 문제 링크 https://www.acmicpc.net/problem/2999 풀이 방법 위 문제는 정인이가 암호화한 문자열을 다시 해독하는 문제이다 따라서 암호화 하는 과정으로 이해하면 안 되고 해독하는 과정으로 이해해야 한다. 아래 예시를 들어보겠다. 만약 R=2, C=3 인 경우 암호화 된 문자열이 koaski라고 할 때 다음과 같이 3x2 배열의 형태로 변경한다. ko as ki 인덱스가 0인 열부터 전부 읽어 나가면 kakosi가 된다. 이 원리를 이용해서 문제를 쉽게 해결할 수 있다. 위 설명과 아래 코드의 주석을 참고해서 해당 문제를 이해하자! 코드 #include using namespace std; const int MAX_N = 105; char arr[MAX_N][MAX_N]; int .. 2024. 2. 4.
[C++] 백준 1969번: DNA 문제 링크 https://www.acmicpc.net/problem/1969 풀이 방법 DNA s1, s2, ..., sn가 주어져 있을 때 Hamming Distance의 합이 가장 작은 DNA s를 구해야 한다. 해당 문제의 핵심 Key Point는 입력된 문자열 s1,s2, ...., sn 똑같은 위치에 존재하는 알파벳 중 가장 많은 알파벳을 사전 순서대로 넣으면 해당 문자열 s를 구할 수 있다. 아래 예시를 참고하면 이해가 될 것이다. TATGATAC TAAGCTAC AAAGATCC TGAGATAC TAAGATGT 위 문자열에서 첫 번째 위치로 설명을 하면 T가 4개, A가 1개 이므로 T를 선택하면 된다. 이런 식으로 각 위치 별로 가장 많이 존재하는 알파벳을 하나 선택하면 TAAGATAC가 선.. 2024. 2. 4.