코딩테스트 (C#)

백준 10807 : 개수 세기 - C# 풀이

UniCoti-sub 2024. 9. 5.
반응형

문제 사진

 

이번 문제는 확실히 전 단계에 비해서는 어려워졌다.

일단 주제는 "일차원 배열"이라고 한다.

 

코딩을 실제 프로젝트에서 해보면 알겠지만

조금 복잡한 알고리즘을 설계할 때면 항상 배열이 등장한다.

그만큼 배열의 효과는 알고리즘에 필수적이며 실제 프로젝트에서 반드시 사용된다.

이 단계도 이차원 배열까지는 안나오기에 할만 할 것이다.

 

일단 기초적인 방법으로는 두번째 줄을 배열로 저장한 다음

한 원소씩 돌아가면서 개수를 세는 방법이 있다.

(솔직히 첫 줄은 왜 주어진지 모르겠다)

 

나는 Linq의 메서드를 사용했다.

뭐 알고리즘 능력을 키울때는 안쓰는 게 좋지만 시간 복잡도가 큰 것도 아니고

나는 실제 프로젝트를 많이 진행해봤기에 굳이 피할 이유가 없다고 생각했다.

 

using System;
using System.Linq;

namespace unicoti {
    class Program {
        static void Main(string[] args) {
            int count = 0;
            Console.ReadLine();
            string input = (Console.ReadLine()??"");
            int.TryParse(Console.ReadLine(), out int num);
            count = input.Split(' ').Count(n => n == num.ToString());

            Console.WriteLine(count);
        }
    }
}

 

첫줄은 버리고, 

Linq의 Count와 익명함수 구문을 사용해서 바로 count를 구할 수 있었다.


오늘의 느낀점)

Linq의 Count를 방금 전 프로젝트에서 쓰고 있어서 바로 기억났다.

문제랑 프로젝트랑 만든 코드가 비슷한게 신기하다.

운이 조금 따라줬던 것 같기도 하다.

 

발전할 점으로는 첫줄이 필요 없어서

Console.ReadLine(); 을

한 줄로 소비했는데, 더 나은 방법을 찾아볼 것이다.


이상으로 도움이 되었길 바라며,

 

끝.

반응형

댓글