문제설명
배열에 담겨있는 각 요소가 짝수인지 구분하여 각 개수를 배열에 순서대로 담아 리턴하라
제한사항
입출력 예
말로하는 순서도
solution 함수 선언 및 매개변수 int형 정수리스트 num_list, 리스트길이 num_list_len 선언 및 반환형 int
answer이라는 계산값 및 최종 반환값을 저장할 변수 선언 및 초기화
짝수의 개수를 담을 변수 e선언 int형
홀수의 개수를 담을 변수 o선언 int형
for문 리스트의길이보다작을때 반복 변수 증가
if문 리스트의 for문변수위치의 값을 2로 나누었을때 나머지가 0이라면
e값을 증가하라
esle if문 리스트의 for문변수위치의 값을 2로 나누었을때 나머지가 1이라면
o값을 증가하라
answer 0위치에 짝수 개수변수 e를 넣어라
answer 1위치에 홀수 개수변수 o를 넣어라
최종반환
소스코드
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// num_list_len은 배열 num_list의 길이입니다.
int* solution(int num_list[], size_t num_list_len) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int* answer = (int*)malloc(1);
int e=0;
int o=0;
for(int i=0; i<num_list_len; i++)
{
if(num_list[i]%2==0)
{
e++;
}
else if(num_list[i]%2==1)
{
o++;
}
}
answer[0]= e;
answer[1]= o;
return answer;
}
풀이
2로 나누었을때 나머지에 따라 홀짝을 구분하였다
최종반환해야 하는 답의 양식때문에 배열의 위치를 정하여 따로 넣어줬다
지금 생각하면 따로 변수 없이 if문에서 answer의 각 위치의 값을 증가시키는것도 가능할듯하다(answer의 배열의 초기화도 필요하다)
출처: 프로그래머스 코딩테스트연습 입문문제, https://school.programmers.co.kr/learn/courses/30/lessons/120824
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
728x90