
문이 열립니다. . . 몇 번 움직였게?
main 함수 / 설명
int main() {
int floors[5] = {1, 2, 5, 4, 2};
int floors_len = 5;
int ret = solution(floors, floors_len);
printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}
- floors 배열에 몇 층 갔는지 저장
- floos_len을 5로 넣는다. 엘리베이터가 움직이는 횟수
- floors, floors_len을 매개변수로 갖는 solution 함수를 정수형 ret에 할당
solution 함수 / 설명
int solution(int floors[], int floors_len) {
int dist = 0;
for(int i = ; ; ++i){
if()
dist += floors[i] - floors[i-1];
else
dist += floors[i-1] - floors[i];
}
return dist;
}
- floors와 floors_len을 매개 변수로 갖는 solution 함수
- dist는 엘리베이터의 총 이동 거리를 담는 변수, 0으로 초기화
- floors_len만큼 반복하기 / 이전 층에서 얼만큼 이동했는지 알아야 하므로 floors[1]부터 시작
- 만약 floors[i]가 floors[i-1] (맨 뒤)보다 클 때 dist에 floors[i] - floors[i - 1] 하기
- 아니라면 dist에 += floors[i - 1] - floors[i] 하기
- dist 리턴!
전체 코드
int solution(int floors[], int floors_len) {
int dist = 0;
for (int i = 1; i < floors_len; ++i) {
if (floors[i] >= floors[i - 1])
dist += floors[i] - floors[i - 1];
else
dist += floors[i - 1] - floors[i];
}
return dist;
}
int main() {
int floors[5] = { 1, 2, 5, 4, 2 };
int floors_len = 5;
int ret = solution(floors, floors_len);
printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}
실행 결과
