📌프로그래머스 181928
💡풀이
- 순간적으로 string이 생각났지만 쓰지 않고도 해결할 방법이 떠올라 int만 사용한다.
- 반복문을 돌며 검사를 할 때, num_list의 홀수와 짝수는 각각 다음과 같다.
- num_list[i] % 2 == 1
- num_list[i] % 2 == 0
- 홀수 짝수 int 변수를 각각 만들고 처음 더하면(홀수or짝수 == 0) num_list[i]를
- 그 이후는 (홀수or짝수) * 10 + num_list[i]를 한다.
- num_list의 원소가 1이상 이기에 가능하다.
public int 이어붙인수(int[] num_list)
{
int even = 0;
int odd = 0;
for (int i = 0; i < num_list.Length; i++)
{
if (num_list[i] % 2 == 0)
even = even > 0 ? even * 10 + num_list[i] : num_list[i];
else
odd = odd > 1 ? odd * 10 + num_list[i] : num_list[i];
}
return even + odd;
}
또는
public int 이어붙인수(int[] num_list)
{
int even = 0;
int odd = 0;
foreach(int num in num_list)
{
if (num % 2 == 0)
even = even > 0 ? even * 10 + num : num;
else
odd = odd > 0 ? odd * 10 + num : num;
}
return even + odd;
}
만약 string을 쓴다면?
public int 이어붙인수(int[] num_list)
{
string even = "";
string odd = "";
foreach (int n in num_list)
{
if (n % 2 == 0)
even += n.ToString();
else
odd += n.ToString();
}
return int.Parse(even) + int.Parse(odd);
}
느리다.
'프로그래머스' 카테고리의 다른 글
두 수의 연산값 비교하기 (C#) (0) | 2024.05.24 |
---|---|
원소들의 곱과 합 (C#) (0) | 2024.05.22 |
글자 이어 붙여 문자열 만들기 (C#) (0) | 2024.05.22 |
부분 문자열 이어 붙여 문자열 만들기 (C#) (0) | 2024.05.21 |
접두사인지 확인하기 (C#) (0) | 2024.05.21 |