# 문제 출제 사이트

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

 

4673번: 셀프 넘버

셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,

www.acmicpc.net

 

 

# 문제

셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다.

양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 

예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 수 있다.

33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ...

n을 d(n)의 생성자라고 한다. 위의 수열에서 33은 39의 생성자이고, 39는 51의 생성자, 51은 57의 생성자이다. 생성자가 한 개보다 많은 경우도 있다. 예를 들어, 101은 생성자가 2개(91과 100) 있다. 

생성자가 없는 숫자를 셀프 넘버라고 한다. 100보다 작은 셀프 넘버는 총 13개가 있다. 1, 3, 5, 7, 9, 20, 31, 42, 53, 64, 75, 86, 97

10000보다 작거나 같은 셀프 넘버를 한 줄에 하나씩 출력하는 프로그램을 작성하시오.

 

# 입력

입력은 없다.

 

# 출력

10,000보다 작거나 같은 셀프 넘버를 한 줄에 하나씩 증가하는 순서로 출력한다.

 

 

# 제출한 소스코드들

 

  • 함수 미사용
  •  i + (i % 10) + (i % 100) / 10 + (i % 1000) / 100 + (i % 10000) / 1000
    위 연산을 통해 셀프넘버가 아닌 것을 구한다.
  • 해당 구한 값들을 notSelfNumArr bool 타입 배열을 통해 각각 셀프 넘버인지 아닌지 체크한다.

 

 

 

  • 함수 사용
  • 입력 / 연산 / 출력 분리

 

 

반응형

'IT > 알고리즘(Algorithm)' 카테고리의 다른 글

[C#]백준 11654번 문제 풀이  (0) 2021.09.16
[C#]백준 1065번 문제 풀이  (0) 2021.09.16
[C#]백준 10872번 문제 풀이  (0) 2021.09.12
[C#]백준 1978번 문제 풀이  (0) 2021.09.12
[C#]백준 4344번 문제 풀이  (0) 2021.09.09

# 문제 출제 사이트

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

 

10872번: 팩토리얼

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

# 문제

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

 

# 입력

첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.

# 출력

첫째 줄에 N!을 출력한다.

 

 

# 제출한 소스코드

 

 

 

 

# 팩토리얼이란?

 

계승 - 위키백과, 우리 모두의 백과사전

계승(繼承)에 대해서는 왕위 계승 문서를 참고하십시오. 수학에서, 자연수의 계승 또는 팩토리얼(階乘, 문화어: 차례곱, 영어: factorial)은 그 수보다 작거나 같은 모든 양의 정수의 곱이다. n이 하

ko.wikipedia.org

 

반응형

'IT > 알고리즘(Algorithm)' 카테고리의 다른 글

[C#]백준 1065번 문제 풀이  (0) 2021.09.16
[C#]백준 4673번 문제 풀이  (0) 2021.09.15
[C#]백준 1978번 문제 풀이  (0) 2021.09.12
[C#]백준 4344번 문제 풀이  (0) 2021.09.09
[C#]백준 8958번 문제 풀이  (0) 2021.09.09

# 문제 출제 사이트

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

 

1978번: 소수 찾기

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

www.acmicpc.net

 

# 문제

주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.

 

# 입력

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

# 출력

주어진 수들 중 소수의 개수를 출력한다.

 

 

# 제출한 소스코드

 

 

 

 

 

# 소수(Prime Number)란?

  • 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수
    * 약수: 어떤 수로 정수가 나누어떨어지는것을 대하여 이르는 말 => 나머지가 없음
  • 5는 1×5 또는 5×1로 수를 곱한 결과를 적는 유일한 방법이 그 수 자신을 포함하기 때문에 5는 소수이다.
  • 6은 자신보다 작은 두 숫자의 곱(2×3)이므로 소수가 아니다.
    * 1보다 큰 자연수 중 소수가 아닌 것은 합성수라고 한다.

 

 

반응형

'IT > 알고리즘(Algorithm)' 카테고리의 다른 글

[C#]백준 4673번 문제 풀이  (0) 2021.09.15
[C#]백준 10872번 문제 풀이  (0) 2021.09.12
[C#]백준 4344번 문제 풀이  (0) 2021.09.09
[C#]백준 8958번 문제 풀이  (0) 2021.09.09
[C#]백준 1546번 문제 풀이  (0) 2021.09.07

# 문제 출제 사이트

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

 

4344번: 평균은 넘겠지

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

www.acmicpc.net

 

# 문제

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

 

# 입력

첫째 줄에는 테스트 케이스의 개수 C가 주어진다.

둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

# 출력

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

 

 

# 첫번째 제출한 소스코드

using System;

namespace ConsoleAppAlgorithm
{
    class baek4344
    {
        static void Main()
        {
            int c = int.Parse(Console.ReadLine());

            float[] numArray = new float[c];
            float[] avgArray = new float[c];
            for (int i = 0; i < c; i++)
            {
                float[] score = Array.ConvertAll(Console.ReadLine().Split(), float.Parse);
                float allScore = 0f;
                float avg = 0f;

                for (int j = 1; j <score[0] + 1; j++)
                    allScore += score[j];

                for (int j = 1; j < score[0] +1; j++)
                {
                    if (score[j] > allScore / score[0])
                        avg++;
                }
                numArray[i] = score[0];
                avgArray[i] = avg;
            }

            for (int i = 0; i < numArray.Length; i++)
                Console.WriteLine($"{string.Format("{0:0.000}", (avgArray[i] / numArray[i]) * 100)}%");
        }
    }
}

 

 

 

# 두번째 제출한 소스코드

using System;

class baek4344
{
    static void Main()
    {
        int C = int.Parse(Console.ReadLine());
        for (int i = 0; i < C; i++)
        {
            float[] score = Array.ConvertAll(Console.ReadLine().Split(), float.Parse);
            float allScore = 0f, avg = 0f;

            for (int j = 1; j <score[0] + 1; j++)
                allScore += score[j];

            for (int j = 1; j < score[0] +1; j++)
                if (score[j] > allScore / score[0]) avg++;

            Console.WriteLine($"{string.Format("{0:0.000}", (avg / score[0]) * 100)}%");
        }
    }
}
  • 네임스페이스 제거
  • numArray, avgArray <--- 불필요한 배열 선언 제거
  • for, if문 안에 한줄 짜리 코드만 있으면 컬리브라켓("{ }") 삭제

반응형

'IT > 알고리즘(Algorithm)' 카테고리의 다른 글

[C#]백준 10872번 문제 풀이  (0) 2021.09.12
[C#]백준 1978번 문제 풀이  (0) 2021.09.12
[C#]백준 8958번 문제 풀이  (0) 2021.09.09
[C#]백준 1546번 문제 풀이  (0) 2021.09.07
[C#]백준 3052번 문제 풀이  (0) 2021.09.06

 

# 문제 출제 사이트

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

 

8958번: OX퀴즈

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수

www.acmicpc.net

 

# 문제

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.

"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.

OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.

 

# 입력

첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.

 

# 출력

각 테스트 케이스마다 점수를 출력한다.

 

 

# 제출한 소스코드

using System;

namespace ConsoleAppAlgorithm
{
    class baek8958
    {
        // 백준 8958: https://www.acmicpc.net/problem/8958
        static void Main()
        {
            // 테스트 케이스의 개수 입력
            int testCaseNum = int.Parse(Console.ReadLine());
            string[] result = new string[testCaseNum];
            int[] numArray = new int[testCaseNum];
            for (int i = 0; i < result.Length; i++)
            {
                result[i] = Console.ReadLine();
                int sumNum = 0, add = 1;
                for (int j = 0; j < result[i].Length; j++)
                {
                    if (result[i][j] == 'O')
                    {
                        sumNum += add;
                        add++;
                    }
                    if (result[i][j] == 'X') add = 1;
                }
                numArray[i] = sumNum;
            }

            foreach (var item in numArray)
                Console.WriteLine(item);
        }
    }
}

 

 

반응형

'IT > 알고리즘(Algorithm)' 카테고리의 다른 글

[C#]백준 1978번 문제 풀이  (0) 2021.09.12
[C#]백준 4344번 문제 풀이  (0) 2021.09.09
[C#]백준 1546번 문제 풀이  (0) 2021.09.07
[C#]백준 3052번 문제 풀이  (0) 2021.09.06
[C#]백준 2577번 문제 풀이  (0) 2021.09.04

 

# 문제 출제 사이트

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

 

1546번: 평균

첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보

www.acmicpc.net

 

# 문제

세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다.

예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다.

세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오.

 

# 입력

첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다.

 

# 출력

첫째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-2 이하이면 정답이다.

 

 

# 첫번째 제출한 소스코드

using System;

namespace ConsoleAppAlgorithm
{
    class baek1546
    {
        static void Main()
        {
            int subjectCount = int.Parse(Console.ReadLine());

            float maxNum = 0;

            string[] inputNum = Console.ReadLine().Split();
            float[] subjectArray = Array.ConvertAll(inputNum, float.Parse);

            for (int i = 0; i < subjectCount; i++)
            {
                if (subjectArray[i] > maxNum)
                    maxNum = subjectArray[i];
            }

            float sumNum = 0;
            for (int i = 0; i < subjectCount; i++)
                sumNum += subjectArray[i] / maxNum * 100;

            Console.WriteLine(sumNum / subjectCount);
        }
    }
}

 

 

 

 

 

# 두번째 제출한 소스코드

using System;

namespace ConsoleAppAlgorithm
{
    class baek1546
    {
        static void Main()
        {
            // 과목의 개수 N
            // ConSole.ReadLine()으로 받아온 string 값을 int형으로 파싱 후 subjectCount 변수에 초기화
            int subjectCount = int.Parse(Console.ReadLine());

            // 1. 과목 값을 Console.ReadLine으로 받아 공백 부분을 기준으로 Split(나눈다)
            // 2. 나눈 각자의 값을 float형으로 전부 파싱해서 float형 배열 subjectArray 변수에 초기화
            // Array.ConvertAll<TInput,TOutput>을 사용해 한 형식의 배열을 다른 형식의 배열로 변환
            float[] subjectArray = Array.ConvertAll(Console.ReadLine().Split(), float.Parse);

            // 과목 중 최고값 할당 할 float 변수
            float maxNum = 0;

            // 최댓값을 찾아 maxNum 변수에 할당하는 반복문
            foreach (var item in subjectArray)
            {
                if (item > maxNum)
                    maxNum = item;
            }

            
            float sumNum = 0;

            // 가짜 점수를 구해 총점에 더하는 반복문
            //  총점 += 점수 / 최고점수 * 100
            foreach (var item in subjectArray)
                sumNum += item / maxNum * 100;

            // 총점에 과목갯수를 나눠 평균 출력
            Console.WriteLine(sumNum / subjectCount);
        }
    }
}

 

반응형

'IT > 알고리즘(Algorithm)' 카테고리의 다른 글

[C#]백준 4344번 문제 풀이  (0) 2021.09.09
[C#]백준 8958번 문제 풀이  (0) 2021.09.09
[C#]백준 3052번 문제 풀이  (0) 2021.09.06
[C#]백준 2577번 문제 풀이  (0) 2021.09.04
[C#]백준 2562 번 문제 풀이  (0) 2021.09.03

 

# 문제 출제 사이트

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

 

3052번: 나머지

각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.

www.acmicpc.net

 

# 문제

두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.

수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.

 

 

# 입력

첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.

 

# 출력

첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.

 

 

# 막히는 부분 도움 참고한 사이트

https://itadventure.tistory.com/154

 

백준 3052. 나머지 문제 풀이

오랜만에 백준 문제를 풀어봅니다 :) 그냥 10분안에 간단히 풀 수 있는 문제 하나 골라봤는데요. https://www.acmicpc.net/problem/3052 3052번: 나머지 문제 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나..

itadventure.tistory.com

 

 

# 제출한 소스코드

using System;

namespace ConsoleAppAlgorithm
{
    class baek3052
    {
        static void Main()
        {
            int[] numArray = new int[10];
            int[] divideArray = new int[42];
            for (int i = 0; i < numArray.Length; i++)
            {
                numArray[i] = int.Parse(Console.ReadLine()) % 42;
                for (int j = 0; j < divideArray.Length; j++)
                {
                    if (numArray[i] == j)
                        divideArray[j]++;
                }
            }

            int sumNum = 0;
            foreach (var item in divideArray)
            {
                if (item != 0)
                      sumNum++;
            }

            Console.WriteLine(sumNum);
        }
    }
}

 

 

 

 

* bool 배열을 사용한 방법

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        int input;
        bool[] exist = new bool[42];
        int count = 0;

        for(int i = 0; i < 10; i++)
        {
            input = (int.Parse(Console.ReadLine()) % 42);
            exist[input] = true;
        }
        
        for(int j = 0; j < exist.Length; j++)
        {
            if (exist[j]) count++;
        }

        Console.WriteLine(count);

    }
}
  • 메모리: 5744KB
  • 시간: 92MS
  • 코드길이: 523B
  • 반복문 2개만 사용해서 상당히 간결함
  • bool타입 배열을 사용해서 true false로만 배열 구성(값이 있는지 없는지만)

 

반응형

'IT > 알고리즘(Algorithm)' 카테고리의 다른 글

[C#]백준 8958번 문제 풀이  (0) 2021.09.09
[C#]백준 1546번 문제 풀이  (0) 2021.09.07
[C#]백준 2577번 문제 풀이  (0) 2021.09.04
[C#]백준 2562 번 문제 풀이  (0) 2021.09.03
[C#]백준 10818 번 문제 풀이  (0) 2021.09.02

# 문제 출제 사이트

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

 

2577번: 숫자의 개수

첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.

www.acmicpc.net

 

# 문제

세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.

예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.

 

 

# 입력

첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.

 

# 출력

첫째 줄에는 A × B × C의 결과에 0 이 몇 번 쓰였는지 출력한다. 마찬가지로 둘째 줄부터 열 번째 줄까지 A × B × C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다.

 

 

 

# 제출한 소스코드

using System;

namespace ConsoleAppAlgorithm
{
    class baek2577
    {
        static void Main()
        {
            int[] numArray = new int[3];
            for (int i = 0; i < numArray.Length; i++)
            {
                int tempNum;
                int.TryParse(Console.ReadLine(), out tempNum);
                if (100 <= tempNum && 1000 > tempNum)
                {
                    numArray[i] = tempNum;
                }
            }
            int multiplyNum = numArray[0] * numArray[1] * numArray[2];

            string txtMultiNum = multiplyNum.ToString();

            int[] overlapArray = new int[10];
            for (int i = 0; i < txtMultiNum.Length; i++)
            {
                for (int j = 0; j <= 9; j++)
                {
                    if ($"{txtMultiNum[i]}" == j.ToString())
                    {
                        overlapArray[j] += 1;
                    }
                }
            }

            foreach (var item in overlapArray)
            {
                Console.WriteLine(item);
            }
        }
    }
}

 

 

 

 

 

 

# 코드 간결하게 수정

using System;

namespace ConsoleAppAlgorithm
{
    class baek2577
    {
        static void Main()
        {
            int multipleNum = 1;		//입력된 3개의 값을 서로 곱하기 위해 1로 초기화
            for (int i = 0; i < 3; i++)
                multipleNum *= int.Parse(Console.ReadLine());

            char[] charArray = multipleNum.ToString().ToCharArray();

            int[] countArr = new int[10];		// 0 ~ 9 까지의 숫자 갯수 저장 할 int배열
            
          	//countArr 배열의 인덱스에 맞춰 charArray 의 해당 숫자를 ++ 해주는 반복문
            for (int i = 0; i < charArray.Length; i++)
                countArr[int.Parse(charArray[i].ToString())]++;
			
            // countArr 배열을 foreach 반복문으로 출력
            foreach (var item in countArr)
                Console.WriteLine(item);
        }
    }
}

반응형

'IT > 알고리즘(Algorithm)' 카테고리의 다른 글

[C#]백준 8958번 문제 풀이  (0) 2021.09.09
[C#]백준 1546번 문제 풀이  (0) 2021.09.07
[C#]백준 3052번 문제 풀이  (0) 2021.09.06
[C#]백준 2562 번 문제 풀이  (0) 2021.09.03
[C#]백준 10818 번 문제 풀이  (0) 2021.09.02

 

# 문제 출제 사이트

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

 

2562번: 최댓값

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어

www.acmicpc.net

 

 

# 문제

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고,

그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.

예를 들어, 서로 다른 9개의 자연수

3, 29, 38, 12, 57, 74, 40, 85, 61

이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.

 

 

# 입력

첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.

 

# 출력

첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.

 

 

 

# 제출한 소스코드

using System;

namespace ConsoleAppAlgorithm
{
    class baek2562
    {
        static void Main()
        {
            int arrayLength = 9;
            int[] numArray = new int[arrayLength];
            int maxValue = 0;
            int maxValueIndex = 0;
            for (int i = 0; i < arrayLength; i++)
            {
                int.TryParse(Console.ReadLine(), out int num);
                
                if (num < 100)
                {
                     numArray[i] =num;
                }
                if (num > maxValue)
                {
                    maxValueIndex = i;
                    maxValue = num;
                }
            }

            Console.WriteLine($"{maxValue} {maxValueIndex + 1}");
        }
    }
}

 

 

 

반응형

'IT > 알고리즘(Algorithm)' 카테고리의 다른 글

[C#]백준 8958번 문제 풀이  (0) 2021.09.09
[C#]백준 1546번 문제 풀이  (0) 2021.09.07
[C#]백준 3052번 문제 풀이  (0) 2021.09.06
[C#]백준 2577번 문제 풀이  (0) 2021.09.04
[C#]백준 10818 번 문제 풀이  (0) 2021.09.02

# 문제 출제 사이트

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

 

10818번: 최소, 최대

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

www.acmicpc.net

 

# 문제

N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.

 

 

# 입력

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

 

# 출력

첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.

 

 

 

# 제출한 소스코드

using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleAppAlgorithm
{
    class baek10818
    {

        // https://www.acmicpc.net/problem/10818
        static void Main()
        {
            int n;
            int.TryParse(Console.ReadLine(), out n);
            string[] arrayNums = Console.ReadLine().Split(' ');

            List<int> minMax = new List<int>();

            foreach (string item in arrayNums)
                minMax.Add(int.Parse(item));

            Console.WriteLine($"{minMax.Min()} {minMax.Max()}");
        }
    }
}

 

  • 제네릭 List<T>에 내부 함수( Min(), Max() )를 사용

 

 

반응형

'IT > 알고리즘(Algorithm)' 카테고리의 다른 글

[C#]백준 8958번 문제 풀이  (0) 2021.09.09
[C#]백준 1546번 문제 풀이  (0) 2021.09.07
[C#]백준 3052번 문제 풀이  (0) 2021.09.06
[C#]백준 2577번 문제 풀이  (0) 2021.09.04
[C#]백준 2562 번 문제 풀이  (0) 2021.09.03

+ Recent posts