[BOJ/C++] 11720 숫자의 합

햅쌀이·2023년 5월 13일
1

✍🏻 Algorithm

목록 보기
12/22
post-thumbnail

문제 링크 https://www.acmicpc.net/problem/11720

📝 문제

문제 설명
N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.

💻 코드

#include <iostream>
#include <string>
using namespace std;

int main()
{
    int N, total;
    string num;
    
    cin >> N >> num;
    
    total = 0;
    for (int i=0; i<N; i++) {
        total += num[i] - '0';
    }
    
    cout << total;
}

📌 해결방법

  1. 숫자들을 string으로 입력받은 후에 인덱스를 사용하여 총합 구하기!

💡 배운 점

- to_string()

  • 말 그대로 string 형으로 변환
  • 인수로는 int, long, double 등등 사용 사능
  • #include <string> 필요!

- stoi()

  • 숫자만 있는 문자열에 사용할 경우 숫자로 변경됨
  • 문자와 숫자가 섞여 있을때는, 문자가 나올때까지의 숫자만 변환
string temp = '1234'
stoi(temp) = 1234

- arr[i] - '0'

  • 문자열에서 숫자만 얻고 싶을 때 사용
  • string 문자열에서 인덱스를 사용해 한글자씩 접근할 때는 char
  • 만약 숫자라면 '0'(=48) ~ '9'(=57) 값을 가져 '0'을 빼주기
    ex) 문자가 '2'일 경우 아스키 코드 상 50 여기에 '0'(=48)을 빼주면 숫자 2
string temp = '1234' 

for (int i=0; i<N; i++) {
    temp = temp[i] - '0';
}

✔ 느낀 점

문자열 인덱싱도 쉽지않네..^^;;;;;;

profile
C++과 파이썬 공부중

1개의 댓글

comment-user-thumbnail
2023년 5월 16일

문자열,,, 정말,, 어렵죠,,

답글 달기