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

최근 글 👑

C# 프로그래머스 #30 - 할 일 목록, 제곱수 판별하기, 접미사인지 확인하기

2023. 9. 19. 16:35ㆍ프로그래머스 C# 코딩테스트
반응형

91. 할 일 목록

 

문제 설명

  • 오늘 해야 할 일이 담긴 문자열 배열 todo_list와 각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished가 매개변수로 주어질 때, todo_list에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

제한사항

  • 1 ≤ todo_list의 길이 1 ≤ 100
  • 2 ≤ todo_list의 원소의 길이 ≤ 20
  • todo_list의 원소는 영소문자로만 이루어져 있습니다.
  • todo_list의 원소는 모두 서로 다릅니다.
  • finished[i]는 true 또는 false이고 true는 todo_list[i]를 마쳤음을, false는 아직 마치지 못했음을 나타냅니다.
  • 아직 마치지 못한 일이 적어도 하나 있습니다.

입출력 예시

 

  • 예제 1번의 todo_list 중에서 "problemsolving"과 "swim"은 마쳤고, "practiceguitar"와 "studygraph"는 아직 마치지 못했으므로 todo_list에서 나온 순서대로 담은 문자열 배열 ["practiceguitar", "studygraph"]를 return 합니다.

풀이

using System;
using System.Collections.Generic;

public class Solution {
    public string[] solution(string[] todo_list, bool[] finished) {
        // 하지 못한 일을 저장할 List 선언
        List<string> result = new List<string>();
        
        //for 반복문을 이용 모든 할일을 체크하기 위해 길이 설정
        for(int i = 0; i < todo_list.Length; i++){
            if(!finished[i]){ // false일 때만 result 리스트에 추가
                result.Add(todo_list[i]);
            }
        }
        // 리스트를 배열로 변환 후 반환
        return result.ToArray();
    }
}

 

92. 제곱수 판별하기

 

문제 설명

  • 어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.

제한사항

  • 1 ≤ n ≤ 1,000,000

입출력 예시

  • 144는 12의 제곱이므로 제곱수입니다. 따라서 1을 return합니다.
  • 976은 제곱수가 아닙니다. 따라서 2를 return합니다.

풀이

using System;

public class Solution {
    public int solution(int n) {
        double result = Math.Sqrt((double)n);
        // Math.Sqrt는 해당 값의 제곱근을 구한다. e.g. n = 144 -> result = 12.0 단, 실수형.
        
        if((int)result == result) return 1;
        //result를 정수형으로 바꾼 값이 제곱근의 값과 동일하다면 n은 제곱수이다.
        else return 2;
    }
}

 

93. 접미사인지 확인하기

 

문제 설명

  • 어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다. 
  • 문자열 my_string과 is_suffix가 주어질 때, is_suffix가 my_string의 접미사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.

제한사항

  • 1 ≤ my_string의 길이 ≤ 100 
  • 1 ≤ is_suffix의 길이 ≤ 100 
  • my_string과 is_suffix는 영소문자로만 이루어져 있습니다.

입출력 예시

 

  • 예제 1번에서 is_suffix가 my_string의 접미사이기 때문에 1을 return 합니다.
  • 예제 2번에서 is_suffix가 my_string의 접미사가 아니기 때문에 0을 return 합니다.
  • 예제 3번에서 is_suffix가 my_string의 접미사가 아니기 때문에 0을 return 합니다.
  • 예제 4번에서 is_suffix가 my_string의 접미사가 아니기 때문에 0을 return 합니다.

풀이

using System;

public class Solution {
    public int solution(string my_string, string is_suffix) {
    	// my_stirng 안에 is_suffix가 포함되어 있을 때
        if(my_string.Contains(is_suffix)){
        	// is_suffix의 마지막 요소가 my_string의 마지막 요소와 같다면 접미사이다.
            if(is_suffix[is_suffix.Length-1] == my_string[my_string.Length-1]) return 1;
            else return 0;
        } else return 0;
    }
}

 

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

 

반응형