백준 실버는 처음 시도했는데 1시간 5분 걸렸다.
테스트 케이스만 바라보고 풀다 보니 처음 만든 수식보다 조금 더 변수가 다양했다.
이 부분은 다음에 시도할땐 문제에서 보여주는 조건에 대해서 더 명확한 로직을 구성해야겠다.
그래도 머리박고 클리어.
코딩테스트
[Bronze III] 팰린드롬인지 확인하기 - 10988
https://www.acmicpc.net/problem/10988
[Bronze III] 팰린드롬인지 확인하기 - 10988 풀이코드
더보기
#include <bits/stdc++.h>
using namespace std;
string s, h;
int main() {
cin >> s;
// s의 길이가 홀수인지 짝수인지 판별
if (s.length() % 2 == 0)
{
// 짝수면 절반을 기준으로 나눈다.
h = s.substr(s.length() / 2, s.length() - 1);
s = s.substr(0, s.length() / 2);
}
else
{
// 홀수면 중간 하나를 빼고 나눈다.
h = s.substr((s.length() / 2) + 1, s.length() - 1);
s = s.substr(0, (s.length() / 2));
}
// 뒤에 값을 Reverse한다.
reverse(h.begin(), h.end());
// 비교 후 출력
if (h == s) cout << 1;
else cout << 0;
return 0;
}
[Bronze II] 농구 경기 - 1159
https://www.acmicpc.net/problem/1159
[Bronze II] 농구 경기 - 1159 풀이코드
더보기
#include <bits/stdc++.h>
using namespace std;
map<char, int> a;
int b;
char c;
string d, e;
int main() {
ios::sync_with_stdio(false); cin.tie(NULL); // 입력 최적화
cin >> b; // 전체 개수 입력
for(int i = 0; i < b; i++) {
cin >> d; // 문자열 하나 씩 입력
a[d[0]]++; // a[문자열 첫글자]++;
}
for(auto i : a) {
if (i.second >= 5) e += i.first; // 반복하면서 5개 이상이면 결과값에 문자열 추가
}
if (e.length() < 1) e = "PREDAJA"; // 없으면 항복 선언
cout << e;
return 0;
}
[Bronze I] ROT13 - 11655
https://www.acmicpc.net/problem/11655
[Bronze I] ROT13 - 11655 풀이코드
더보기
#include <bits/stdc++.h>
using namespace std;
string s, temp;
// A = 65, a = 97
int main() {
temp = "";
getline(cin, s);
for(int i = 0; i < s.length(); i++) {
if(s[i] == ' ') temp += " ";
else if(s[i] < 'A') temp += s[i];
else if(s[i] < 'a') temp += (s[i] + 13) > 'Z' ? (s[i] + 13) - 26 : s[i] + 13;
else if(s[i] < 'z' + 1) temp += (s[i] + 13) > 'z' ? (s[i] + 13) - 26 : s[i] + 13;
}
cout << temp;
return 0;
}
[Silver III] 한국이 그리울 땐 서버에 접속하지 - 9996
https://www.acmicpc.net/problem/9996
[Silver III] 한국이 그리울 땐 서버에 접속하지 - 9996 풀이코드
더보기
#include <bits/stdc++.h>
using namespace std;
int a;
int b1, c1;
char b, c;
string d, e, f;
int main() {
ios::sync_with_stdio(false); cin.tie(NULL);
cin >> a;
cin >> d;
for (int i = 0; i < d.length(); i++) {
if (d[i] == '*') {
b = d[i - 1];
b1 = i - 1;
c = d[i + 1];
c1 = d.length() - (i + 1 + 1);
}
}
for(int i = 0; i < a; i++) {
cin >> e;
if ((b1 + 1) + (c1 + 1) > e.length()) f += "NE";
else if(e[b1] == b && e[e.length() - c1 - 1] == c) f += "DA";
else f += "NE";
if (i < a - 1) f += "\n";
}
cout << f;
return 0;
}