프로그래머스 > 코딩테스트 연습 > 코딩 기초 트레이닝 > 조건에 맞게 수열 변환하기 3
https://school.programmers.co.kr/learn/courses/30/lessons/181835
📒 문제
정수 배열 arr와 자연수 k가 주어집니다.
만약 k가 홀수라면 arr의 모든 원소에 k를 곱하고, k가 짝수라면 arr의 모든 원소에 k를 더합니다.
이러한 변환을 마친 후의 arr를 return 하는 solution 함수를 완성해 주세요.
제한사항
- 1 ≤ arr의 길이 ≤ 1,000,000
- 1 ≤ arr의 원소의 값 ≤ 100
- 1 ≤ k ≤ 100
입출력 예
arr | k | result |
[1, 2, 3, 100, 99, 98] | 3 | [3, 6, 9, 300, 297, 294] |
[1, 2, 3, 100, 99, 98] | 2 | [3, 4, 5, 102, 101, 100] |
입출력 예 설명
입출력 예 #1
- 주어진 k인 3은 홀수이므로, 전체 배열에 3을 곱합니다. 따라서 [3, 6, 9, 300, 297, 294]을 return 합니다.
입출력 예 #2
- 주어진 k인 2는 짝수이므로, 전체 배열에 2를 더합니다. 따라서 [3, 4, 5, 102, 101, 100]을 return 합니다.
💻 소스코드
using System;
using System.Linq;
public class Solution {
public int[] solution(int[] arr, int k) {
return arr.Select(s => {
if(k%2 == 1) return s*k;
else return s+k;
}).ToArray();
}
}
다른 풀이
using System;
using System.Linq;
public class Solution {
public int[] solution(int[] arr, int k) {
if(k%2 == 1)
return arr.Select(s => s*k).ToArray();
else
return arr.Select(s => s+k).ToArray();
}
}
📝 풀이
첫번째 풀이는 arr을 Select로 돌며 k의 홀짝 여부를 판단해 곱하거나 더하였다.
하지만 체점 완료 후 다른 풀이를 찾아보니 k의 홀짝 여부는 한번만 판단 하면 되는 것이기 때문에
k의 홀짝 여부를 판단 먼저 하고 Select를 도는것 더 좋은 코드라고 판단이 되어서 가져와 봤다.
이런 사소한 부분을 미리 고쳐야지 추후 더 좋은 코드를 작성할 수 있을거라고 생각된다.
관련 포스팅
'코딩 테스트 (C#) > 프로그래머스 (기초)' 카테고리의 다른 글
[프로그래머스 >코딩 기초 트레이닝] 캘린더 완성~~ (0) | 2024.08.13 |
---|---|
[C#][프로그래머스 > 코딩테스트 기초] 배열의 원소 삭제하기 (0) | 2024.08.12 |
[C#][프로그래머스 > 코딩테스트 기초] 전국 대회 선발 고사 (0) | 2024.08.02 |
[C#][프로그래머스 > 코딩테스트 기초] 문자열 묶기 (0) | 2024.08.02 |
[C#][프로그래머스 > 코딩테스트 기초] 배열 만들기 6 (0) | 2024.08.01 |