1. 문제: 짝수는 싫어요
정수 n이 매개변수로 주어질 때, n이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.
2. 제한사항
● 1 ≤ n ≤ 100
3. 입출력 예시
n result 10 [1,3,5,7,9] 15 [1,3,5,7,9,11,13,15]
4. 나의 풀이
<1. 배열로 푼 풀이>
public static int[] solution(int n)
{
//n이 홀수일 경우를 생각해서 answer배열의 방 수를 조정.
int[] answer = new int[(n + 1) / 2];
//1부터 n까지 n번 반복하는 for문. i를 2로 나눈 나머지가 1(=홀수)이면 answer[i/2]부터 i를 넣어줌.
//i=1이면 0번방, 3이면 1번방, 5면 2번방, ....
for (int i = 0; i < n; i++)
{
if (i % 2 == 1) answer[i / 2] = i;
}
return answer;
}
<2. List<T>를 활용한 풀이>
public static int[] solution(int n)
{
List<int> answer = new List<int>();
for (int i = 1; i <= n; i++)
{
if (i % 2 == 1) answer.Add(i);
}
return answer.ToArray();
}
-주석을 못달아서 여기다 설명하도록 하게씀!-
// Array배열과 다르게 List는 크기의 제한을 두지 않는 배열임. 그래서 방의 개수 계산한다고 머리 아플일이 별로 없단 말씀.
// 위와 같이 습관적 for문 작성해주고 리스트 answer에 if문 조건에 부합하는 i를 for문이 끝날 때까지 넣어주는 거임.
// 마지막 리턴할 때 함수가 int[ ] (int형 배열) 형식으로 리턴하라고 하죠? 그러니 리스트 형식인 answer를 array처럼 배열화 시켜주는게 ToArray() 매서드임. 끝.
'C# > 프로그래머스 코딩 문제 풀이' 카테고리의 다른 글
[프로그래머스 C#] Lv.0 옷가게 할인받기, 아이스 아메리카노 (0) | 2024.01.11 |
---|---|
[프로그래머스 C#] Lv.0 배열 뒤집기, 문자열 뒤집기 (0) | 2024.01.05 |
[프로그래머스 C#] Lv.0 중앙값 구하기, 최빈값 구하기 (2) | 2024.01.05 |
[프로그래머스 C#] Lv.0 배열 두 배 만들기 (0) | 2024.01.05 |
[프로그래머스 C#] Lv.0 분수의 덧셈 (0) | 2024.01.05 |