백준 BOJ C# 3052 나머지

2020. 1. 20. 22:47백준 알고리즘 단계별/1차원 배열

반응형

백준 BOJ C# [3052] [나머지]

 

 

출제 링크 : https://www.acmicpc.net/problem/3052

 

3052번: 나머지

문제 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.  수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오. 입력 첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다. 출력 첫째 줄에, 42로 나누었

www.acmicpc.net

 

코드

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
47
48
49
using System;
using System.Collections;
using static System.Console;
 
namespace baekioon
{
    class MainApp
    {
        static void Main()
        {
            // 다른지 나타낼 count 변수
            /*int count = 0;*/
 
            // 입력값 저장 배열
            int[] nums = new int[10];
 
            // 같은 값 저장 배열
            ArrayList sameList = new ArrayList();
 
            // 입력 받고 42로 나누어주기
            for (int i = 0; i < 10; i++)
            {
                nums[i] = int.Parse(ReadLine());
                nums[i] = nums[i] % 42;
 
            }
 
            for (int j = 9; j >= 0; j--)
            {
                for (int k = 0; k < 10; k++)
                {
                    if (nums[j] == nums[k])
                        sameList.Add(nums[j]);
                    
                    
                }
            }
 
            // 배열 출력
            for (int i = 0; i < 10; i++)
            {
                WriteLine("nums{0} : {1}", i, nums[i]);
            }
            .... 모르겟돠아앙
 
 
        }
    }
}

이런 저런 방법을 구상하면서 코드를 작성했다.

원래는 입력받은 값을 바로 42로 나누어서 그걸 배열에 저장하고

배열 하나하나의 요소들을 나머지 요소와 비교후

만약 같다면 그 요소들을 ArrayList에 저장하고 

같은 요소들의 ArrayList의 길이를 구할려고...했지만

너어어어무 돌아가는거 같아서 이리저리 검색해봤다.

 

그러던중 찾았던 bool 값의 배열선언이다.

 

 

 

훨씬 깔끔하고 간단하게 코드가 완성되었다.

반응형