문제설명
영어 소문자, 대문자 한자리의 숫자가 있는 배열이 주어질때 숫자만 덧셈하여 반환하라
제한사항
입출력 예
말로하는 순서도
solution 함수 선언 및 매개변수 char형 문자열 my_string
answer이라는 계산값 및 최종 반환값을 저장할 변수 선언 및 초기화 for문 변수에 사용할 int형 i선언
len이라는 주어진 문자열의 길이를 담을 변수 선언 strlen을 이용해 my_string의 길이를 담음
for문 len보다 작을때 반복 변수 증가
if문 문자 1보다 my_string의 i위치의 값이 크거나 같을때 && 문자 9보다 my_string의 i위치의 값이 작거나 같다면
answer의 my_string의 i위치의 값에서 48을 뺀값을 더한다
최종반환
소스코드
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
int solution(const char* my_string) {
int answer = 0,i;
int len=strlen(my_string);
for(i=0;i<len;i++)
{
if('1'<=my_string[i]&&'9'>=my_string[i])
{
answer+=my_string[i]-48;
}
}
return answer;
}
풀이
' '로 하게 되면 문자로 인식한다 char형이기에 문자로 if문으로 확인하여 숫자인지를 확인한다
-48의 이유는 int형으로 넣기전에 0의 아스키코드값 48을 빼 원하는 숫자를 만든
출처: 프로그래머스 코딩테스트연습 입문문제, https://school.programmers.co.kr/learn/courses/30/lessons/120851
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
728x90