/*
 문제
 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오.
 
 입력
 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다.

 출력
1로 이루어진 n의 배수 중 가장 작은 수의 자리수를 출력한다.
 
 */
import Foundation
//while let input = readLine() {
//    var one = "1"
//    while Int(one)! % Int(input)! != 0 {
//        print(one)
//        one.append("1")
//    }
//    print(one.count)
//}

while let input = readLine() {
    var one = 1
    var count = 1
    while one % Int(input)! != 0 {
        one = one * 10 + 1
        one %= Int(input)!
        count += 1
    }
    print(count)
}

 

단순히 문자열에 "1" 을 추가하고, 해당 문자열의 길이를 출력하는 방법으로 풀었으나 Runtime 오류가 발생했다.

실행 할때마다 결과값이 잘 나와서 왜 안되는지 한잘 머리를 굴렸다.. ( 주석처리한 부분! )

 

그리고 11113 같은 큰 수를 넣었더니.. 에러가 발생했다!!

 

이유는 Int 형의 범위를 넘어가서 오류가 발생하는 거였다..

 

그래서 어떻게 하지 고민하다가..

 

input으로 들어온 값으로 나눈 나머지로 계산하는 방식을 고안해 냈다..

 

왜 저렇게 고안했는지는 디버깅 몇번 해보면 알게 될것이당...

저렇게 계산하면 최대 범위를 넘어갈 일도 없을 뿐더러 계산도 차이없이 잘 된다!

/*
 문제
 (A+B)%C는 ((A%C) + (B%C))%C 와 같을까?

 (A×B)%C는 ((A%C) × (B%C))%C 와 같을까?

 세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오.
 
 입력
 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)
 
 출력
 첫째 줄에 (A+B)%C, 둘째 줄에 ((A%C) + (B%C))%C, 셋째 줄에 (A×B)%C, 넷째 줄에 ((A%C) × (B%C))%C를 출력한다.
 
 */
import Foundation
let inputArr = readLine()!.components(separatedBy: " ").map{Int($0)!}
let A = inputArr[0], B = inputArr[1], C = inputArr[2]
print((A + B)%C)
print(((A%C) + (B%C))%C)
print((A*B)%C)
print(((A%C) * (B%C))%C)

설명할 사항이 딱이 없는거 같다.

한가지만 알아두자!

 

Swift 에서 readLine() 으로 입력을 받을수 있음

components(separatedBy: " ") 로 " " 기준으로 나누어 저장함

map 함수를 이용하여 Int 형 배열로 저장!

// 1000 - A + B
import Foundation

let input = readLine()!
let intArray = input.components(separatedBy: " ")
print(Int(intArray[0])! + Int(intArray[1])!)

 

Swift 에서 입력을 받기 위한 함수는 readLine( ) 함수이다!

 

이 함수는 옵셔널 값인 String? 타입으로 데이터를 읽기때문에 암시적 옵셔널을 사용해서 값을 받는다!

 

let input = readLine()!

한줄을 읽어 input 에 값을 저장한다!

 

components 함수는 해당 문자열 ( " " ) 기준으로 나누어 문자열로 반환을 한다!

 

따라서 해당 함수를 사용하여 intArray 함수에 할당하고!

 

이 값들을 더하여 출력한다!

+ Recent posts