2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

Lv0 C# 프로그래머스 #22 - 배열의 길이에 따라 다른 연산하기, 공백으로 구분하기 1, 원소들의 곱과 합

2023. 8. 31. 16:51ㆍ프로그래머스 C# 코딩테스트
반응형

67. 배열의 길이에 따라 다른 연산하기

 

문제 설명

  • 정수 배열 arr과 정수 n이 매개변수로 주어집니다. arr의 길이가 홀수라면 arr의 모든 짝수 인덱스 위치에 n을 더한 배열을, arr의 길이가 짝수라면 arr의 모든 홀수 인덱스 위치에 n을 더한 배열을 return 하는 solution 함수를 작성해 주세요.

제한사항

  • 1 ≤ arr의 길이 ≤ 1,000 
  • 1 ≤ arr의 원소 ≤ 1,000 
  • 1 ≤ n ≤ 1,000

입출력 예시

  • 예제 1번의 arr의 길이는 5로 홀수입니다. 따라서 arr의 짝수 인덱스 0, 2, 4에 주어진 n 값인 27을 더하면 [76, 12, 127, 276, 60]이 됩니다. 따라서 [76, 12, 127, 276, 60]를 return 합니다.
  • 예제 2번의 arr의 길이는 4로 짝수입니다. 따라서 arr의 홀수 인덱스 1, 3에 주어진 n 값인 100을 더하면 [444, 655, 666, 877]이 됩니다. 따라서 [444, 655, 666, 877]를 return 합니다.

풀이

using System;
using System.Collections.Generic;

public class Solution {
    public int[] solution(int[] arr, int n) {
        List<int> result = new List<int>();
        if(arr.Length % 2 == 1){
            for(int i = 0; i <arr.Length; i++){
                if(i % 2 == 0){
                    result.Add(arr[i] + n);
                } else{
                    result.Add(arr[i]);
                }
            }
        } else {
            for(int i = 0; i < arr.Length; i ++){
                if(i % 2 == 1){
                    result.Add(arr[i] + n);
                } else{
                    result.Add(arr[i]);
                }
            }
        }
        return result.ToArray();
    }
}

// List result 선언
// arr의 길이가 홀수이면 인덱스가 짝수번일 때 해당 인덱스 값 + n
// arr의 길이가 짝수이면 인덱스가 홀수번일 때 해당 인덱스 값 + n
// List result를 ToArray 메서드를 이용해 배열로 변환 후 반환

 

68. 공백으로 구분하기 1

문제 설명 

  • 단어가 공백 한 개로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

제한사항 

  • my_string은 영소문자와 공백으로만 이루어져 있습니다. 
  • 1 ≤ my_string의 길이 ≤ 1,000 
  • my_string의 맨 앞과 맨 뒤에 글자는 공백이 아닙니다.

입출력 예시 

  • 예제 1번의 my_string은 "i love you"로 공백 한 칸으로 나누어진 단어들은 앞에서부터 순서대로 "i", "love", "you" 이므로 ["i", "love", "you"]를 return 합니다.
  • 예제 2번의 my_string은 "programmers"로 단어가 하나만 있습니다. 따라서 ["programmers"]를 return 합니다.

풀이

using System;

public class Solution {
    public string[] solution(string my_string) {
        return my_string.Split(" ");
    }
}

// Split() 메서드는 괄호안 조건에 따라 문자열을 배열로 나눈다.

 

69.  원소들의 곱과 합

 

문제 설명 

  • 정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요.

제한사항 

  • 2 ≤ num_list의 길이 ≤ 10 
  • 1 ≤ num_list의 원소 ≤ 9

입출력 예시 

  • 모든 원소의 곱은 120, 합의 제곱은 225이므로 1을 return합니다.
  • 모든 원소의 곱은 840, 합의 제곱은 529이므로 0을 return합니다.

풀이

using System;
using System.Linq;

public class Solution {
    public int solution(int[] num_list) {
        int multi = 1;
        int sum = num_list.Sum();
        foreach(int num in num_list){
            multi *= num;
        }
        return sum*sum > multi ? 1 : 0;
    }
}

// multi 모든 요소의 곱을 저장할 변수
// sum 모든 요소의 합을 저장할 변수, Linq 문법 .Sum() 메서드를 이용.
// foreach 반복문을 통해 모든 요소 곱셈
// sum의 제곱보다 모든 요소의 곱이 작으면 1 아니면 0 반환

 

  • 정답률 높은 순부터 풀이
  • 매일 3 문항 풀이
반응형