728x90
푸는데엔 여러 방법이 있겠지만,
나는 strtok 를 사용한 정직한 방법과
어차피 input 은 X,X 으로 고정적이니까 string 을 사용한 방법 2가지를 해보았다.
방법1.
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
int main()
{
int T,a,b;
char input[5];
cin >> T;
char * tok;
for(int i=0; i<T; i++)
{
cin >> input;
tok = strtok(input,",");
a = atoi(tok);
tok = strtok(NULL,"");
b = atoi(tok);
cout << a+b << "\n";
}
return 0;
}
들어온 문자열을 "," 단위로 토큰화 하였다. 두번째 strtok 의 delimeter 는 "," 로 하면 틀린답이 나온다. 그래서 ""로 바꿔주었다.
cstdlib -> atoi 를 사용하기 위함.
cstring -> strtok 를 사용하기 위함.
방법2.
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
int main()
{
int T;
string input;
cin >> T;
for(int i=0; i<T; i++)
{
cin >> input;
cout << input[0]-'0'+input[2]-'0' << "\n";
}
return 0;
}
string 배열의 각 index는 char 이다. 이를 이용해, 0번과 2번엔 숫자가 들어가니까 그걸 그대로 출력한다.
char -> int 화 하기 위해선 char의 값이 '0' ~ '9' 라는 가정하에 '0' 의 아스키코드값을 빼주면 된다.
만약 char a = '1'; 일 경우, a - '0' 은 아스키코드값 49 - 48 이 되어 출력은 정수 1이 되게 된다.
'프로그래밍 > programmers&bj' 카테고리의 다른 글
[C++] 백준 1309번: 동물원 (0) | 2020.08.04 |
---|---|
[C++] 백준 11651번: 좌표 정렬하기 2 (0) | 2020.07.31 |
[C++] 백준 10951번: A+B - 4 (0) | 2020.07.30 |
[C++] 백준 4963번: 섬의 개수 (0) | 2020.07.21 |
[C++] 백준 1080번: 행렬 (0) | 2020.07.11 |