본문 바로가기
c#/알고리즘

1302번 베스트셀러

by Luna_O 2020. 6. 8.

https://www.acmicpc.net/problem/1302

 

1302번: 베스트셀러

첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고

www.acmicpc.net

 
입력 값 첫번째는 팔린 책의 갯수 그 다음 줄부터는 팔린 책의 제목들이 차례로 들어온다
그 중 가장 많이 팔린 제목을 출력해주면 됨!

 

어떻게 풀어야할지 감이 안잡히는뎅....일단 하나씩 비교해서 int 하나 만들어서 값 올려주고 비교해야 할 듯??

 

값 받고 int 2개 count, max 만들고 카운트 올려서 이걸 비교할거임

결과 넣을 string 하나 만들고 제목 비교 할 string 제목 첫번째로 넣어놓음

그리고 Sort해서 정렬 한번 쭈욱 함 순서대로 비교하기 위함

for문 돌면서 첫번째부터 제목 겹치는거 카운트 올려줌

다 올라가면 max로 옮겨담고 다 돌고

마지막에 max와 count 비교해서 결과 담고 출력

 

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
namespace _1302
{
    class Program
    {
        static void Main(string[] args)
        {
            var N = int.Parse(Console.ReadLine());
            List<string> arrInput = new List<string>();
 
            for (int i = 0; i < N; i++)
            {
                arrInput.Add(Console.ReadLine());
            }
            int count= 0;
            int maxCount = 0;
            string name = arrInput[0];
            string result = null;
            arrInput.Sort();
            for (int j = 0; j < N; j++)
            {
                if (arrInput[j] == name)
                {
                   count++;
                }
                else
                {
                    if (maxCount < count)
                    {
                       maxCount = count;
                        result = name;
                    }
                    name = arrInput[j];
                   count= 1;
                }
            }
            if (maxCount < count)
            {
                result = name;
            }
 
            Console.Write(result);
        }
    }
}
 
cs

 

'c# > 알고리즘' 카테고리의 다른 글

1074번 z  (0) 2020.06.29
2504번 괄호의 값 - 런타임 에러 - 해결  (0) 2020.06.18
1343번 폴리오미노  (0) 2020.06.01
1181 단어 정렬  (0) 2020.05.25
2135 문자열 압축하기 - 어려워..나중에  (0) 2020.05.18