-
2024 - 03 - 03 C++ 코딩테스트 10주완성 D+8Language Grammar/C++ 2024. 3. 3. 17:18
1-F ROT13 - 백준 11655 문제
ROT13은 카이사르 암호의 일종으로 영어 알파벳을 13글자씩 밀어서 만든다.
ASCII 코드를 이용하여 입력받은 문자열 아스키코드에다가 (+ 13) 을 한다.
하지만 대문자 및 소문자 아스키코드에서 + 13을 하였을 때,
알파벳의 범위를 넘어가는 예외처리를 해주어야 알파벳이 아닌 다른 문자열이 나오지 않는다.
따라서 대문자의 ASCII 코드 끝 범위인 90을 초과할 경우
{90 - 26(알파벳의 개수)} 를 써주어야 한다.
소문자의 경우에는
{122 - 26(알파벳의 개수)} 이다.
실습코드#include <bits/stdc++.h> using namespace std; string s; int main() { //띄어쓰기 까지 입력 받아야함 getline(cin, s); for (int i = 0; i < s.size(); i++) { //대문자인 경우 if (s[i] >= 65 && s[i] < 97) { if (s[i] + 13 > 90) s[i] + 13 - 26; else s[i] = s[i] + 13; } //소문자인 경우 else if (s[i] >= 97 && s[i] <= 122) { if (s[i] + 13 > 122) s[i] = s[i] + 13 - 26; else s[i] = s[i] + 13; } cout << s[i]; } }
1-G 한국이 그리울 땐 서버에 접속하지 - 백준 9996 문제
패턴 : 알파벳 소문자 여러 개와 별표 하나로 이루어진 문자열
입력으로 파일목록과 패턴을 받으면
파일목록중에서 패턴을 검사하여 패턴에 일치하는 파일인지 아닌지 검사하는 프로그램 작성
패턴중 * 의 위치를 찾아서 * 의 위치를 기반으로 양쪽으로 나눠서 비교함
패턴 = (문자열)a * (문자열)b 이기때문에
* 위치기준
왼쪽 배열기준으로는 a만
오른쪽 배열기준으로 b만 찾으면 패턴이 일치하는지 확인할 수 있다.
실습코드#include <bits/stdc++.h> using namespace std; int n; string s, ori_s, pre, suf; int main() { cin >> n; cin >> ori_s; int pos = ori_s.find("*"); pre = ori_s.substr(0, pos); suf = ori_s.substr(pos + 1); for (int i = 0; i < n; i++) { cin >> s; //패턴과 입력받은 목록을 비교할시 입력받은 문자열이 //더 작을 경우 비교자체가 안되기때문에 해놓은 예외처리 if (pre.size() + suf.size() > s.size()) { cout << "NE\n"; } else { if (pre == s.substr(0, pre.size()) && suf == s.substr(s.size() - suf.size())) cout << "DA\n"; else cout << "NE\n"; } } return 0; }
1-H 수열 - 백준 2559 문제
연속적인 여러개의 숫자를 입력받고 여러개의 숫자중 합이 가장 큰값을 출력
N : 1 ~ 10만
k : 1 ~ 10만 - 1 (n사이값이기때문에)
온도는 -100 ~ 100
연속의 온도의 합이 "최대" 되는 값을 구하여야한다.
최대값을 구하라고 하면
최솟값부터 최대값을 구한다.
최소값을 구하라고 하면
최대값부터 최솟값을 구한다.실습코드
#include <bits/stdc++.h> using namespace std; typedef long long ll; int n, k, temp, psum[100001], ret = -1000000; int main() { cin >> n >> k; for (int i = 1; i <= n; i++) { cin >> temp; psum[i] = psum[i - 1] + temp; } for (int i = k; i <= n; i++) { ret = max(ret, psum[i] - psum[i - k]); } cout << ret << "\n"; return 0; }
'Language Grammar > C++' 카테고리의 다른 글
2024 - 04 - 08 C++ 코딩테스트 10주완성 D+10 (0) 2024.04.08 2024 - 03 - 11 C++ 코딩테스트 10주완성 D+9 (2) 2024.03.12 2024 - 02 - 27 C++ 코딩테스트 10주완성 D+7 (1) 2024.02.27 2024 - 02 - 26 C++ 코딩테스트 10주완성 D+6 (1) 2024.02.26 2024 - 02 - 14 C++ 코딩테스트 10주완성 D+5 (1) 2024.02.15