코딩테스트

[프로그래머스] 평균 구하기, 자릿수 더하기

코딩너구리 2024. 3. 12. 16:48

평균 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/12944

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 설명
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.

제한사항
arr은 길이 1 이상, 100 이하인 배열입니다.
arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.

 

for문의 사용법과 vector의 길이를 알 수 있다면 간단히 풀 수 있다.

#include <string>
#include <vector>

using namespace std;

double solution(vector<int> arr) {
    
    int sum=0;
    
    
    for(int i =0; i <arr.size();i++)
    {
        sum+=arr[i];
    }
    
    return (double)sum / arr.size();
}

 


자리수 더하기

https://school.programmers.co.kr/learn/courses/30/lessons/12931

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

제한사항
N의 범위 : 100,000,000 이하의 자연수

 

처음에는 string으로 바꾸어서 자리수를 분리한 후 다시 int로 바꿔서 해야하나 생각해보았는데, 단순 계산을 통해서도 가능 할거라 생각해 알아보다 나눗셈을 통해 자리수를 분리할 수 있단 걸 알게 되었다.

#include <iostream>

using namespace std;
int solution(int n)
{
    int answer = 0;

    while(n!=0)
    {
        answer+=n%10;
        n/=10;
    }
    
    return answer;
}

 

10으로 나누면 나머지 값이 가장 마지막 자리수의 값을 가져올 수 있다. 그 후 n의 값을 10으로 게속 나누어주면서 값을 자리수를 변경한다.

파란색은 n의 값, 빨간색은 나머지 즉 해당 자리의 수를 의미한다.

 

출처 : 프로그래머스 lv.1