1037 - 약수

2021. 12. 17. 12:32·알고리즘/Swift
/*
 문제
 양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오.
 
 입력
 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되지 않는다.
 
 출력
 첫째 줄에 N을 출력한다. N은 항상 32비트 부호있는 정수로 표현할 수 있다.
 
 */
import Foundation
let inputCount = readLine().map{Int($0)!}!
var inputNum = readLine()!.components(separatedBy: " ").map{Int($0)!}

if inputCount == 1 {
    print(inputNum[0]*inputNum[0])
} else {
    let even = (inputNum.count / 2)
    inputNum = inputNum.sorted()
    if inputNum.count % 2 == 0 {
        print(inputNum[even] * inputNum[even - 1])
    } else {
        print(inputNum[even - 1] * inputNum[even + 1])
    }
}

알고리즘 문제를 많이 풀어봐야 겠다고 느낀 문제..

 

문제를 보고 무슨뜻인지 잘 이해가 안되서 한참을 쳐다봤다 ㅋㅋㅋ

해당 풀이 방법은 이렇게 수행된다

 

1. 약수의 갯수가 1개이면 고민할 필요도 없이 해당 값을 제곱하여 출력하면 된다

2. 약수의 갯수가 2개 이상이라면 입력받은 배열을 정렬하고,[ 갯수 / 2 ] 를 하여 배열의 중간값위치를 구한다!

3. 약수의 갯수가 짝수 라면 중간값의 계산한 [ 인덱스의 값 * 이전 인덱스의 값 ] 을 하여 구한다!

4. 약수의 갯수가 홀수 라면 중간인덱스의 [ 이전 값 * 이후 값 ] 을 수행하여 구한다!

'알고리즘/Swift' 카테고리의 다른 글
  • [level 1] x만큼 간격이 있는 n개의 숫자
  • [level 1] 직사각형 별찍기
  • 4430 - 1
  • 10430 - 나머지
Jeohong
Jeohong
기억 보단 기록을
  • Jeohong
    Chikong Devlog
    Jeohong
  • 전체
    오늘
    어제
    • 분류 전체보기 (186)
      • ---- 개발 컨텐츠 ---- (0)
      • iOS (30)
        • Swift 문법 (1)
        • iOS 개념 (12)
        • HIG (5)
        • SwiftUI (7)
        • UIKit (4)
      • Side Project (0)
      • 개발서적 (4)
        • 객체지향 사실과 오해 (4)
      • 알고리즘 (74)
        • 자료구조 개념 (2)
        • Swift (25)
        • JavaScript (47)
      • ---- 회고 계획 컨텐츠 ---- (0)
      • 계획 및 일기 (10)
      • 회고록 (1)
      • 컨퍼런스 탐방 (1)
      • 미드로 영린이 탈출하기 (1)
      • ---- Previous content ---- (0)
      • Frontend (2)
        • HTML & CSS (2)
      • KITRI 수업 (17)
        • 리눅스 (14)
        • 네트워크 (2)
      • 42seoul (17)
        • Bonr2code (9)
        • 넋두리 (7)
        • 멘토특강 (1)
      • 해킹 실습 (20)
        • 해커스쿨 - F.T.Z (19)
        • WebGoat (1)
      • Tensorflow로 시작하는 NLP (1)
        • 예제 (1)
      • 자연어처리 입문 (1)
        • 이론 (1)
      • 텐서플로로 배우는 딥러닝 (7)
        • 이론 (2)
        • 예제 (5)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    swift
    Algorithm
    42서울
    네트워크
    javascript
    SwiftUI
    백준
    스위프트
    boj
    라피신
    본과정
    개발자
    자료구조
    프로그래머스
    IOS
    1서클
    hig
    코딩
    알고리즘
    42seoul
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Jeohong
1037 - 약수
상단으로

티스토리툴바