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