[알고리즘]멘토링 - 완전 탐색(Brute force) ▷ 문제 현수네 반 선생님은 반 학생들의 수학점수를 향상시키기 위해 멘토링 시스템을 만들려고 합니다. 멘토링은 멘토(도와주는 학생)와 멘티(도움을 받는 학생)가 한 짝이 되어 멘토가 멘티의 수학공부를 도와주는 것입니다. 선생님은 M번의 수학테스트 등수를 가지고 멘토와 멘티를 정합니다. 만약 A학생이 멘토이고, B학생이 멘티가 되는 짝이 되었다면 A학생은 M번의 수학테스트에서 모두 B학생보다 등수가 앞서야 합니다. M번의 수학성적이 주어지면 멘토와 멘티가 되는 짝을 만들 수 있는 경우가 총 몇 가지 인지 출력하는 프로그램을 작성하세요. * 입력 첫 번째 줄에 반 학생 수 N(1 Algorithm/Array 2021. 10. 17. 12:49
[알고리즘]임시반장 정하기 ▷ 문제 김갑동 선생님은 올해 6학년 1반 담임을 맡게 되었다. 김갑동 선생님은 우선 임시로 반장을 정하고 학생들이 서로 친숙해진 후에 정식으로 선거를 통해 반장을 선출하려고 한다. 그는 자기반 학생 중에서 1학년부터 5학년까지 지내오면서 한번이라도 같은 반이었던 사람이 가장 많은 학생을 임시 반장으로 정하려 한다. 그래서 김갑동 선생님은 각 학생들이 1학년부터 5학년까지 몇 반에 속했었는지를 나타내는 표를 만들었다. 예를 들어 학생 수가 5명일 때의 표를 살펴보자. 위 경우에 4번 학생을 보면 3번 학생과 2학년 때 같은 반이었고, 3번 학생 및 5번 학생과 3학년 때 같은 반이었으며, 2번 학생과는 4학년 때 같은 반이었음을 알 수 있다. 그러므로 이 학급에서 4번 학생과 한번이라도 같은 반이었던 사.. Algorithm/Array 2021. 10. 15. 21:29
[알고리즘]봉우리 - 이차원 배열에서 상하좌우보다 숫자가 큰 곳의 개수 구하기 ▷ 문제 지도 정보가 N*N 격자판에 주어집니다. 각 격자에는 그 지역의 높이가 쓰여있습니다. 각 격자판의 숫자 중 자신의 상하좌우 숫자보다 큰 숫자는 봉우리 지역입니다. 봉우리 지역이 몇 개 있는 지 알아내는 프로그램을 작성하세요. 격자의 가장자리는 0으로 초기화 되었다고 가정합니다. 만약 N=5 이고, 격자판의 숫자가 다음과 같다면 봉우리의 개수는 10개입니다. * 입력 첫 줄에 자연수 N이 주어집니다.(2 arr[i+1][j] && arr[i][j] > arr[i][j-1] && arr[i][j] > arr[i][j+1]){ answer++; } } } } return answer; } public static void main(String[] args) { Main main = new Main().. Algorithm/Array 2021. 10. 15. 19:10
[알고리즘]격자판 최대합 - 이차원 배열의 각 행, 열, 대각선의 합 비교하기 ▷ 문제 5*5 격자판에 아래롸 같이 숫자가 적혀있습니다. N*N의 격자판이 주어지면 각 행의 합, 각 열의 합, 두 대각선의 합 중 가 장 큰 합을 출력합니다. * 입력 첫 줄에 자연수 N이 주어집니다.(2 Algorithm/Array 2021. 10. 15. 11:41
[알고리즘]등수구하기 - 입력받은 숫자들의 점수를 비교하여 등수구하기 ▷ 문제 N명의 학생의 국어점수가 입력되면 각 학생의 등수를 입력된 순서대로 출력하는 프로그램을 작성하세요. 같은 점수가 입력될 경우 높은 등수로 동일 처리합니다. 즉 가장 높은 점수가 92점인데 92점이 3명 존재하면 1등이 3명이고 그 다음 학생은 4등이 됩니다. * 입력 첫 줄에 N(3 Algorithm/Array 2021. 10. 15. 06:55
[알고리즘]점수계산 - 연속적으로 답을 맞힌 경우 가산점 주기 ▷ 문제 OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말합니다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기로 하였습니다. 1번 문제가 맞는 경우에는 1점으로 계산합니다. 앞의 문제에 대해서는 답을 틀리다가 답이 맞는 처음 문제는 1점으로 계산합니다. 또한, 연속으로 문제의 답이 맞는 경우에서 두 번째 문제는 2점, 세 번째 문제는 3점 K번째 문제는 K점으로 계산합니다. 틀린 문제는 0점으로 계산합니다. 예를 들어, 아래와 같이 10 개의 OX 문제에서 답이 맞은 문제의 경우에는 1로 표시하고, 틀린 경우에는 0으로 표시하였을 때, 점수 계산은 아래 표와 같이 계산되어, 총 점수는 1+1+2+3+1+2=10점입니.. Algorithm/Array 2021. 10. 15. 06:37
[알고리즘]숫자 거꾸로 뒤집기, 소수 판별 ▷ 문제 N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 소수를 출력하는 프로그램을 작성하세요. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력한다. 단 910를 뒤집으면 19로 숫자화 해야합니다. 첫 자리부터의 연속된 0은 무시합니다. * 입력 첫 줄에 자연수의 개수 N(3 Algorithm/Array 2021. 10. 14. 04:32
[알고리즘]소수 판별 ▷ 문제 자연수 N이 입력되면 1부터 N까지의 소수의 개수를 출력하는 프로그램을 작성하세요. 만약 20이 입력되면 1부터 20까지의 소수는 2, 3, 5, 7, 11, 13, 17, 19로 총 8개입니다. * 입력 첫 줄에 자연수의 개수 N(2 Algorithm/Array 2021. 10. 14. 03:59
[알고리즘]피보나치 수열 ▷ 문제 1. 피보나치 수열을 출력한다. 피보나치 수열이란 앞의 2개의 수를 합하여 다음 숫자가 되는 수열이다. 2. 입력은 피보나치 수열의 총 항의 수 이다. 만약 7이 입력되면 1 1 2 3 5 8 13을 출력하면 된다. * 입력 첫 줄에 총 항수 N(3 Algorithm/Array 2021. 10. 13. 22:14
[알고리즘]가위바위보 ▷ 문제 A, B 두 사람이 가위바위보 게임을 합니다. 총 N번의 게임을 하여 A가 이기면 A를 출력하고, B가 이기면 B를 출력합니다. 비길 경우에는 D를 출력합니다. 가위, 바위, 보의 정보는 1:가위, 2:바위, 3:보로 정하겠습니다. 예를 들어 N=5이면 두 사람의 각 회의 가위, 바위, 보 정보가 주어지면 각 회를 누가 이겼는지 출력하는 프로그램을 작성하세요. * 입력 첫 번째 줄에 게임 횟수인 자연수 N(1 Algorithm/Array 2021. 10. 13. 22:03