[기억할 내용들]
- 문제를 쉽게 풀려고 생각하는 자세가 진짜로 필요하다.
- 필요 이상으로 너무 복잡하게 풀었다.
[나의 코드]
#include <iostream>
#include <stdio.h>
#include <string>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
string input;
cin >> input;
int numC = 0;
int numH = 0;
bool isC = true;
char prev = 'C';
for (int i = 1; i < input.size(); i++) {
if ('A' <= prev && prev <= 'Z') {
if ('A' <= input[i] && input[i] <= 'Z') {
isC = false;
break;
}
}
prev = input[i];
}
if (isC) {
int idx = 1;
for (int i = 1; ('0' <= input[i] && input[i] <= '9' && i<input.size()); i++) {
numC *= 10;
numC += input[i] - '0';
idx++;
}
for (int i = idx + 1; ('0' <= input[i] && input[i] <= '9' && i<input.size()); i++) {
numH *= 10;
numH += input[i] - '0';
idx++;
}
}
else {
for (int i = 2; ('0' <= input[i] && input[i] <= '9' && i < input.size()); i++) {
numH *= 10;
numH += input[i] - '0';
}
}
if (numC == 0) numC = 1;
if (numH == 0) numH = 1;
int res = (numC * 12) + numH;
cout << res << "\n";
return 0;
}
[강의 코드]
#include <iostream>
#include <stdio.h>
#include <string>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
char a[10];
int c = 0, h = 0, i, pos;
scanf_s("%s", &a, sizeof(a));
if (a[1] == 'H') {
c = 1;
pos = 1; // H 의 position/
}
else {
for (i = 1; a[i] != 'H'; i++) {
c *= 10;
c += a[i] - '0';
}
pos = i;
}
if (a[pos + 1] == '\0') h = 1;
else {
for (i = pos + 1; a[i] != '\0'; i++) {
h *= 10;
h += a[i] - '0';
}
}
printf("%d\n", c * 12 + h);
return 0;
}
[의견]
음.. 딱히 알아갈 지식은 없지만 문제를 간결하게 푸는 스타일을 좀 배울 필요가 있을 것 같다.. 코드가 너무 깔끔해서 부럽다.. 질투난다. 열심히 해야지!! 파이팅!!