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

최근 글 👑

Lv0 C# 프로그래머스 #16 - 정수 찾기, 문자열의 뒤의 n글자, 이어 붙인 수

2023. 8. 23. 21:04ㆍ프로그래머스 C# 코딩테스트
반응형

49. 정수 찾기

 

문제 설명

  • 정수 리스트 num_list와 찾으려는 정수 n이 주어질 때, num_list안에 n이 있으면 1을 없으면 0을 return하도록 solution 함수를 완성해주세요.

제한사항

  • 3 ≤ num_list의 길이 ≤ 100 
  • 1 ≤ num_list의 원소 ≤ 100 
  • 1 ≤ n ≤ 100

입출력 예시

  • [1, 2, 3, 4, 5] 안에 3이 있으므로 1을 return합니다.
  • [15, 98, 23, 2, 15] 안에 20이 없으므로 0을 return합니다.

풀이

using System;
using System.Linq;

public class Solution {
    public int solution(int[] num_list, int n) {
        return num_list.Contains(n) ? 1 : 0;
    }
}

// n이 num_list에 포함되어 있다면 1 아니면 0 반환

 

50. 문자열의 뒤의 n글자

 

문제 설명 

  • 문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string의 뒤의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.

제한사항 

  • my_string은 숫자와 알파벳으로 이루어져 있습니다. 
  • 1 ≤ my_string의 길이 ≤ 1,000
  • 1 ≤ n ≤ my_string의 길이

입출력 예시

  • 예제 1번의 my_string에서 뒤의 11글자는 "grammerS123"이므로 이 문자열을 return 합니다.
  • 예제 2번의 my_string에서 뒤의 5글자는 "W0r1d"이므로 이 문자열을 return 합니다.

풀이

using System;
using System.Collections.Generic;

public class Solution {
    public string solution(string my_string, int n) {
        List<char> result = new List<char>();
        char[] charArray = my_string.ToCharArray();
        
        for(int i = my_string.Length - 1; i >= my_string.Length - n; i--){
            result.Add(charArray[i]);
        }
        result.Reverse();
        return new string(result.ToArray());
    }
}

// List를 사용하기 위해 using System.Collections.Generic 사용
// my_string을 문자로 나누어 배열로 저장
// 길이는 1부터 세기 때문에 my_string.Length - 1
// result 리스트에 해당 요소값을 넣어 준다.
// 역순으로 넣었기 때문에 Reverse()를 해준다.
// result는 리스트이기 때문에 배열로 전환
// new string(...)문자 배열에서 새 문자열을 만드는 데 사용

 

51. 이어 붙인 수

 

문제 설명 

  • 정수가 담긴 리스트 num_list가 주어집니다. num_list의 홀수만 순서대로 이어 붙인 수와 짝수만 순서대로 이어 붙인 수의 합을 return하도록 solution 함수를 완성해주세요.

제한사항 

  • 2 ≤ num_list의 길이 ≤ 10
  • 1 ≤ num_list의 원소 ≤ 9
  • num_list에는 적어도 한 개씩의 짝수와 홀수가 있습니다.

입출력 예시 

  • 홀수만 이어 붙인 수는 351이고 짝수만 이어 붙인 수는 42입니다. 두 수의 합은 393입니다. 
  • 홀수만 이어 붙인 수는 573이고 짝수만 이어 붙인 수는 8입니다. 두 수의 합은 581입니다.

풀이

using System;
using System.Collections.Generic;

public class Solution {
    public int solution(int[] num_list) {
        List<int> odd = new List<int>();
        List<int> even = new List<int>();
        
        foreach(int num in num_list){
            if(num % 2 == 1) odd.Add(num);
            else even.Add(num);
        }
        string str_odd = string.Join("", odd);
        string str_even = string.Join("", even);

        int oddSum = int.Parse(str_odd); 
        int evenSum = int.Parse(str_even); 
        
        return oddSum + evenSum; 
    }
}

// 홀수와 짝수를 넣을 리스트 선언
// foreach문을 이용해 홀수와 짝수를 구분 후 할당
// 각각 문자열에 Join("", ) 메서드를 이용하여 조건에 따라 붙임
// int형으로 변환, 계산 후 반환

 

 

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