2023. 5. 25. 00:01, 알고리즘/BOJ
for(char c: input){
if(c=='+'||c=='-'){
ans+=tmp*sign;
if(c=='-') sign=-1;
tmp=0;
}
else{
tmp*10;
tmp+=c-'0';
}
}
각각의 글자들에 대해서 +, 혹은 - 가 아니라면, 지속적으로 일렬로 늘어져있는 char 들을
tmp*10;
tmp+=c-'0'; 형태의 코드를 통해서 기존에 읽어들인 값들을 자릿수를 하나 증가시키고, 그리고 다시 새로운 글자를 -'0'형태의 코드를 이용해서 int 형태로 만들고, 그것을 더해서 한자리 더 읽어들였을때의 int 값을 만드는 코드이다.
이 코드를 익힌다면 아주 편하게 일렬로 주어진 숫자와 연산자들을 string으로 읽으면서 그 앞에 있는 수들을 숫자로 바꿀 수 있을 것이다.
이러한 표현에 익숙해져 보도록 하자.
아마 처음에는 생각이 잘 나지 않겠지만 자꾸 연습하다 보면 충분하게 떠올리고 생각해낼 수 있을 것이다.
'알고리즘 > BOJ' 카테고리의 다른 글
boj 1744 번 문제를 통해 배우는 vector의 iterator와 *의 활용. (0) | 2023.05.26 |
---|---|
boj 11501번 문제를 통해 배우게되는, 이미 다 받아들인 값을 통해서는 역으로도 연산을 해나갈 수 있다는 점에 대하여. (0) | 2023.05.26 |
boj 1931번 문제를 통해 vector로 원소를 만들고 값을 복사해서 받아들일때와, 배열로 잡고 바로 cin으로 받아들일때의 메모리의 차이점. (0) | 2023.05.24 |
boj 7795번 문제를 통해. 접하게된 풀이 방법에 대하여. (0) | 2023.05.22 |
boj 10825번 문제를 통해 배운 tuple의 활용. tuple은 3개의 원소에 대해서만 사용하는것이 아니다. (0) | 2023.05.21 |
Comments, Trackbacks