티스토리 뷰

  • 오전
    • 운동
  • 오후
    • 코딩테스트
  • 저녁
    • 그림

 

 

어제 호르몬의 영향으로 기분이 안좋아서 시그니처 초코 샷추가 그렌드사이즈를 먹었더니

오전 6시까지 잠이 안와서 철학자 유튜브 2시간 짜리를 누우면서 완청했다.

 

그렇게 4시간 자고 일어났는데

뭔 술을 마신 것도 아니고.. 속이 이렇게까지 쓰릴 일인가 싶다.

 

나이가 먹긴 하나보다.

 

조건에 맞게 수열 변환하기 3

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/181835

 

정수 배열 arr와 자연수 k가 주어집니다.

만약 k가 홀수라면 arr의 모든 원소에 k를 곱하고, k가 짝수라면 arr의 모든 원소에 k를 더합니다.

이러한 변환을 마친 후의 arr를 return 하는 solution 함수를 완성해 주세요.

 

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]


내가 쓴 코드

 

public class Solution
{
    public int[] solution(int[] arr, int k)
    {
        int[] answer = new int[arr.Length];

        for (int i = 0; i < arr.Length; i++)
        {
            answer[i] += k % 2 == 0 ? arr[i] + k : arr[i] * k;
        }

        return answer;
    }
}

 

저번에 배열의 크기가 들어온 파라미터값이랑 똑같다면 굳이 List로 만들 필요가 없단걸 배웠다

거기서 삼항연산자를 적용해 좀 더 짧게 코드를 작성했다.

 

2로 나누어지면 짝수니 k를 더한다

2로 나누어지면 홀수니 k를 곱한다.

 

다른사람의 코드

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();
    }
}

 

이 분은 Linq를 사용했다.

효율적인 면에선 안좋지만 가독성인 면에선 역시 좋다.

 

k가 홀수라면 arr.Select(s => s *k).ToArray(); k를 곱해준다

k가 짝수라면 arr.Select(s => s +k).ToArray(); k를 더해준다.

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함