31번 문제
내가 풀이한 답
CaHb(1<=a=b<=100)와 같이 형식이 정해져 있으므로 단순하게 생각했다. 처음 C는 모두 공통이라 생각했고 H의 인덱스에 따라서 a와 b 값을 구하고 a에는 12를 b에는 1을 곱해서 둘이 더하는 방법을 사용하였다.
#include <stdio.h>
#include <cstring>
char arr[8];
int main(int argc, char** argv) {
//freopen("input.txt", "rt", stdin);
scanf("%s", &arr);
int i, k = 1, idx, temp, res;
for(i=1; i<strlen(arr); i++){
if(arr[i] == 'H') idx = i;
}
if(idx == 1) temp = 12;
else {
for(i=idx-1; i>0; i--){
temp += (arr[i]-'0') * k;
k *= 10;
}
temp *= 12;
}
if(idx == strlen(arr) -1) res += 1;
else {
k = 1;
for(i=strlen(arr)-1; i>idx; i--){
res += (arr[i]-'0') * k;
k *= 10;
}
}
res += temp;
printf("%d", res);
return 0;
}
결과는 통과하였다.
사이트의 답안
#include<stdio.h>
int main(){
//freopen("input.txt", "rt", stdin);
char a[10];
int c=0, h=0, i, pos;
scanf("%s", &a);
if(a[1]=='H'){
c=1;
pos=1;
}
else{
for(i=1; a[i]!='H'; i++){
c=c*10+(a[i]-48);
}
pos=i;
}
if(a[pos+1]=='\0') h=1;
else{
for(i=pos+1; a[i]!='\0'; i++){
h=h*10+(a[i]-48);
}
}
printf("%d\n", c*12+h);
return 0;
}
사이트의 답도 H를 기준으로 코드를 짠 것을 확인하였다.
'알고리즘 & 자료구조 > 기초 다잡기' 카테고리의 다른 글
30. 3의 개수는?(large) (0) | 2020.09.08 |
---|---|
29. 3의 개수는?(small) (0) | 2020.09.08 |
28. N!에서 0의 개수 (0) | 2020.09.08 |
27. N!의 표현법 (0) | 2020.09.08 |
26. 마라톤 (0) | 2020.09.08 |