문제설명
상자의 정육면체를 몇개나 채울수 있는지를 반환 하는것이다 배열의 상자의 가로길이 세로길이 높이 순으로 주어진다
n이라는 정육면체의 모서리의 길이를 주어줄때 상자의 몇개의 정육면체가 들어가는지를 반환한다
제한사항
입출력 예
말로하는 순서도
solution 함수 선언 및 매개변수 int형 가로,세로높이의 길이가 들어갈 배열 int형 box선언 배열의길이 size_t형 box_len 선언 모서리의 길이 int형 n선언
int형 최종 답변 변수 answer선언 0으로 초기화
배열 box 0위치의 값을 배열 box 0위치의 값을 n으로 나눈 몫을 넣는다
배열 box 1위치의 값을 배열 box 1위치의 값을 n으로 나눈 몫을 넣는다
배열 box 2위치의 값을 배열 box 2위치의 값을 n으로 나눈 몫을 넣는다
answer의 배열 box 0위치의값* 배열 box 1위치의값* 배열 box 2위치의값을 넣는다
최종반환
소스코드
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// box_len은 배열 box의 길이입니다.
int solution(int box[], size_t box_len, int n) {
int answer = 0;
box[0]=box[0]/n;
box[1]=box[1]/n;
box[2]=box[2]/n;
answer=box[0]*box[1]*box[2];
return answer;
}
풀이
처음에는 부피를 구하고 그 값을 모서리값으로 나누려고 했었다 하지만 1개의 오류가 나왔다
질문하기에 보면 문제 자체에 오류가 있다는 말도 있다
각 길이에 몇개의 상자가 들어있는지를 각각 구혀여 마지막에 3개의 값을 곱하는 방식으로 풀었다
배열의 값을 바꾸는 이유는 배열을 반환 하는것도 아니고 다른 변수를 선언 할 필요가 없어서 사용했다
출처: 프로그래머스 코딩테스트연습 입문문제, https://school.programmers.co.kr/learn/courses/30/lessons/120845
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr