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 |