반응형
문자열로 바꿔서 풀려다가 char를 정수형으로 바꾸는 atoi 사용법을 까먹어서
입력받은 숫자를 10으로 나눈 몫과 나머지를 반복사용해서 풀고싶었는데
이 방식은 입력받는 수의 범위때문인지 답이없어서 그냥 문자열을 int형변환 하는법을 다시 검색해서 수정함
스택오버플로우는 언제나 좋은 친구
아스키코드의 숫자는 48부터 시작하여 int로 형변환 후 48을 빼주어야 정확한 값을 얻을수있다
(아스키에서는 0=48이란 소리)
다른 방법으로는 문자 자체에서 아예 48을 빼주는 방법이 있다
위의 방법을 이용하여
두번째에 입력받은 수인 input을 아예 string으로 입력받은 다음 하나하나 정수로 바꿔서 더했다
#include <bits/stdc++.h>
using namespace std;
int main() {
int cnt;
string input;
cin >>cnt;
cin >> input;
int ans=0;
char c;
int tmp;
for(int i=0; i<cnt; i++){
c= input[i];
tmp =(int)c-48;
ans+=tmp;
}
cout << ans;
return 0;
}
문자열 대신 char형 배열을 이용한 다른 방법
#include <bits/stdc++.h>
using namespace std;
int main() {
int cnt;
char c[101];
cin >>cnt;
int ans=0;
for(int i=0; i<cnt; i++){
cin >> c[i];
ans+=(int)c[i]-48;
}
cout << ans;
return 0;
}
출처 : www.acmicpc.net/problem/11720
참고사이트 : stackoverflow.com/questions/5029840/convert-char-to-int-in-c-and-c
반응형
'문제풀기' 카테고리의 다른 글
[백준/BOJ] 배열 10807번 문제, 개수 세기 C++ 풀이 (0) | 2021.07.28 |
---|---|
[백준/BOJ] 21312번 문제, 홀짝 칵테일 C++ 풀이 (0) | 2021.03.28 |
[백준/BOJ] 구현 14681번 문제, 사분면 고르기 C++ 풀이 (0) | 2021.03.27 |
[백준/BOJ] 구현 11399번 문제, ATM C++ 풀이 (0) | 2021.03.21 |
[백준/BOJ] 구현 2562번 문제, 최댓값 C++ 풀이 (0) | 2021.03.17 |
[백준/BOJ] 구현 8958번 문제, OX퀴즈 C++ 풀이 (0) | 2021.03.14 |