반응형

백준 1145번 문제입니다. (solved.ac) 기준 브론즈 1 문제입니다.

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

 

1145번: 적어도 대부분의 배수

첫째 줄에 다섯 개의 자연수가 주어진다. 100보다 작거나 같은 자연수이고, 서로 다른 수이다.

www.acmicpc.net

문제

문제 접근

우선 5개의 자연수를 입력받습니다. 이 5개의 수들 중 3개 이상의 수들로 나누어 떨어지는 수가 적어도 대부분의 배수입니다. 

주어지는 다섯 개의 자연수의 범위가 100 이하인 자연수이므로 완전 탐색을 하여 적어도 대부분의 배수를 찾도록 만들었습니다.

시간 제한도 2초이고 주어지는 수의 범위도 100이하이므로 단순히 1부터 정수의 최대값 중(그 전에 무조건 금방 나오게 됨.)

입력받은 5가지의 수들 중 3가지 이상의 수들로 나누어 떨어진다면 적어도 대부분의 배수이므로 해당값을 출력하고 프로그램을 종료하도록 구현하였습니다.

정답 코드

fun main() {

    val numList = readln().split(" ").map { it.toInt() }

    for (target in 1 until Int.MAX_VALUE) {

        // 나누어 떨어진 횟수
        var dividedCnt = 0
        
        for (dividerIndex in 0 until numList.size) {
            // 입력받은 다섯 개의 자연수로 나누어질 때마다 dividedCnt + 1
            if (target % numList[dividerIndex] == 0) dividedCnt++
        }
        
        // 입력받은 다섯 개의 자연수로 나누어진 횟수가 3이상이면 적어도 대부분의 배수
        if (dividedCnt >= 3) {
            println(target)
            break
        }
    }

}

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기