Without a Break

기본 알고리즘 - 수학 본문

Algorithm/컴퓨터알고리즘

기본 알고리즘 - 수학

와븨 2022. 10. 21. 22:31

Count 알고리즘

  • 영어 점수를 보관하는 배열 변수 JUMSU를 선언한다.
  • 영어 점수가 80점 이상인 학생들의 수를 보관할 변수인 COUNT의 초깃값을 0으로 잡는다
  • 변수 i를 증가시켜 배열 JUMSU를 하나씩 비교할 것이므로 i의 초깃값을 1로 잡는다.
  • 반복문 : JUMSU의 i번째 원소가 80점이 넘는지 확인하고, 넘는다면 COUNT 값을 1 증가시킨다. i 값을 1씩 증가시켜 JUMSU의 원소를 차례대로 검사한다.
  • JUMSU는 100개의 원소를 가지므로, i가 100이 넘으면 반복문을 끝낸다.

 

 

최댓값과 최솟값

  • M : 영어 만점 중에서 수학 최고점을 보관하는 변수
  • i : 배열을 차례로 검사하기 위해 사용하는 인덱스 변수
  • 반복문 : 영어 점수가 100점인 학생일 경우, 수학 점수가 수학 최고점(M)을 넘는지 검사한다. 최고점을 넘을 경우, 해당 값을 최고점으로 등록한다. i를 증가시켜 점수를 차례대로 비교한다.
  • 학생 수는 200명이므로 i가 200이 넘으면 반복문을 종료한다.

 

 

합계와 평균

  • T(30) : 30일간의 통화 시간을 보관하는 배열 변수
  • Sum : 한 달간의 총 통화시간을 보관하는 변수
  • N : 총 통화시간을 계산하는데 참여한 날짜 수를 보관하는 변수
  • i : 배열 변수 T를 검사하는데 사용하는 인덱스 변수
  • 반복문 : i번째 날의 통화 시간을 Sum에 더하고, 총 통화시간 계산 날짜 수를 더한다.통화 시간이 200초가 넘지 않은 날은 총 통화시간 날짜 수에 더하지 않고 넘긴다. i를 증가시켜 차례대로 계산한다.
  • Sum/N을 통해 한달간 통화시간의 평균을 구해 출력한다.

 

 

소수 판별

  • P : 가장 큰 소수를 보관하는 변수
  • N : 자연수 3부터 100까지 소수 여부를 조사할 때 사용하는 변수
  • M : 자연수 N의 제곱근을 정수로 구하여 저장하는 변수
  • R : 자연수 N을 변수 i로 나눈 나머지를 R에 저장한다.
  • 반복문 : R이 0이면 소수가 아니므로 나머지 과정 8과 2를 생략한다. R이 0이 아닌 경우, 그 다음 자연수에 대하여 반복해서 점검을 진행한다. R을 계산하는 작업은 최대 M까지 진행하고, 새로운 소수가 발견되면 P를 갱신한다.
  • 자연수가 100을 넘으면 반복문을 종료하고 소수를 출력한다.

 

 

소인수분해

  • 입력 받은 자연수 N이 2 이상일 경우에만 수행한다.
  • 인수들을 보관하는 배열 A의 인덱스 T를 0으로 설정한다.
  • 인수 후보(P)는 2부터 시작하여 1씩 증가한다.
  • 자연수 N이 P로 나누어떨어지지 않으면 P를 증가시킨다.
  • T는 배열 A의 인덱스이므로 먼저 1만큼 증가시킨 후, 이것이 가리키는 배열 A에 P를 증가시킨다.
  • 현재 자연수 P를 나눈 몫을 새로운 자연수로 설정하여 이 값이 1인지 검사하고 1이 아니면 반복문을 반복한다.
  • 배열 A의 원소 개수가 1개이면 입력 받은 자연수는 소수이다.

 

 

배수와 공배수

  • A(10) : 10개의 값을 보관할 배열 변수 A
  • CNT : 3의 배수이자 4의 배수인 수의 개수를 보관하는 변수
  • 반복문 : N3에서 배열 A의  i번째 원소가 3의 배수인지 검사하고, N4에서 배열 A의 원소가 4의 배수인지 검사한다. N3과 N4의 합이 0이면 배열 A의 i번째 원소는 3의 배수이면서 4의 배수이라는 뜻이므로 CNT를 1 증가시킨다.
  • i가 10보다 크면 반복문을 종료한다.