본문 바로가기

프로그래머스 코딩테스트

프로그래머스 코딩테스트 입문 DAY4

첫번째 - 피자 나눠 먹기(1)

머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.

입출력 예

n
result
7
1
1
1
15
3

 

 

int solution(int n) {
    int answer = 0;
    
    int i;
    for(i=1;i<n;i++){
        if(i*7>=n)
            break;
    }
    
    answer=i;
    return answer;
}

i(피자 판 수)가 하나씩 증가하고 i*7이 n이 넘으면

바로 브레이크문을 통해 반복문을 빠져나오면 된당

두번째 - 피자 나눠 먹기(2)

머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.

입출력 예

n
result
6
1
10
5
4
2

 

 

int solution(int n) {
    int answer = 0;
    int i;
    for(i=1;i<n;i++)
        if(i*6%n==0)
            break;
    
    answer = i;
    return answer;
}

남기지 않고 모두 같은 수의 조각을 먹어야한다

==

피자 조각 수를 사람 수로 나누었을 때 나누어 떨어져야함

을 이용해서 문제를 풀면 된당

세번째 - 피자 나눠 먹기(3)

머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.

입출력 예

slice
n
result
7
10
2
4
12
3

 

 

int solution(int slice, int n) {
    int answer = 0;
    int i;
    for(i=0;;i++)
        if(slice*i>=n)
            break;
    
    answer = i;
    return answer;
}

 

아까 위에서 풀었던 1번 문제의 7을

slice 변수로 바꿔주면 된당

네번째 - 배열의 평균값

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.

입출력 예

numbers
result
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
5.5
[89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
94.0

 

 

double solution(int numbers[], size_t numbers_len) {
    double answer = 0;
    double total = 0;
    for(int i=0;i<numbers_len;i++)
        total+=numbers[i];
        
    total/=numbers_len;
    answer=total;
    return answer;
}

total을 double로 만들고

반복문 돌려서 모두 더한 후

배열의 크기로 나눠주면 된다

너무 쉬워서 정리하기도 머쓱;;;;한 문제들이엇당