1044 : [기초-산술연산] 정수 한 개 입력받아 1 더해 출력하기 with Swift

41. 콘솔에서 정수를 한 개 입력 받아 1을 더해 출력하라.

입력 범위: -2147483648 ~ 2147483647

입력 예시

2147483647

출력 에시

2147483648

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int value0 = scan.nextInt();
        scan.close();
		long printValue = (long) value0;
		System.out.println(++printValue);
	}
}

 

 

Swift 4.2

import Foundation

extension Int {
    static prefix func ++(_ x: inout Int) -> Int {
        x += 1
        return x
    }
}
let line = readLine()
if line != nil {
    if var value = Int(line!) {
        print(++value)
    }
}

 

 

이번 문제는 증감연산자를 사용해보는게 목적인 문제인듯하여

굳이 ++을 사용해봤습니다.

switf 4.2에선 해당 연사자가 디폴트로 존재하지 않기때문에 전위 증감 연산자로 Int에 한해서 사용하도록 추가해봤습니다.

솔직히 필요한가 싶기도 해요

사용후 증가 사용전 증가 뭐그런거 헷갈리기도하고...

https://codeup.kr/problem.php?id=1044

 

[기초-산술연산] 정수 한 개 입력받아 1 더해 출력하기

어떤 변수(a)에 값을 저장한 후  a+1 의 값을 출력할 수도 있고, ++a 후 출력할 수도 있다. ++a, --a, a++, a-- 와 같이 어떤 변수의 앞이나 뒤에 붙여 변수에 저장되어 있는 값을 1씩 더하거나 빼주는 연산자를 증감연산자라고 한다. 증감연산자를 변수 앞에 붙이면 그 변수를 사용하기 전에 증감을 먼저 수행하고, 증감연산자를 변수 뒤에 붙이면 일단 변수에 저장되어 있는 값을 먼저 사용하고 난 후에 증감을 수행한다.

codeup.kr

 

 

 

 

1045 : [기초-산술연산] 정수 두 개 입력받아 자동 계산하기 with Swift

42. 콘솔에서 정수 두 개(a,b)를 입력 받아 합,차,곱, 나머지, 나눈값을 출력하라.

입력 :

0 ~ 2147483647, b != 0

출력 :

1line : 두 수의 합

2line: 두 수의 차 (a - b)

3line: 두 수 의 곱

4line: a를 b로 나눈 몫

5line: a를 b로 나눈 나머지

6line: a를 b로 나눈 값( 실수, 소수점 셋째 자리에서 반올림해 둘째 자리까지 출력)

입력 예시

10 3

출력 예시

13

7

30

3

1

3.33

Java

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		long value0 = scan.nextInt();
		long value1 = scan.nextInt();
        scan.close();
		System.out.println(value0 + value1);
		System.out.println(value0 - value1);
		System.out.println(value0 * value1);
		System.out.println(value0 / value1);
		System.out.println(value0 % value1);
		double printValue = ((double) value0) / value1;
		System.out.println(String.format("%.2f", printValue));
	}
}

 

 

Swift 4.2

import Foundation

let line = readLine()
if line != nil {
    let values = line!.split(separator: " ")
    if values.count == 2 {
        if let value0 = Int(values[0]), let value1 = Int(values[1]) {
            print(value0 + value1)
            print(value0 - value1)
            print(value0 * value1)
            print(value0 / value1)
            print(value0 % value1)
            let floatValue = Float(value0) / Float(value1)
            print(String.init(format: "%.2f", floatValue))
        }
    }
}

 

 

 

휴일에 사무실에서 이게 뭐하는짓인지..

https://codeup.kr/problem.php?id=1045

 

[기초-산술연산] 정수 두 개 입력받아 자동 계산하기

정수 두 개(a, b)를 입력받아 합, 차, 곱, 몫, 나머지, 나눈값을 자동으로 계산해보자. (단 입력되는 정수 a, b의 범위는 0 ~ 2147483647이고, b는 0이 아니다.)

codeup.kr

 

 

 

1046 : [기초-산술연산] 정수 세 개 입력받아 합과 평균 출력하기 with Swift

43.콘솔에서 세 개의 정수를 입력받아 합과 평균을 출력하라.

입력 : 1line으로 공백으로 구분되어 3개의 정수가 입력됨 (입력 범위 : -2147483648 ~ -2147483647)

출력:

1line : 세 정수의 합

2line : 세 정수의 평균( 실수, 소수점 둘째 자리에서 반올림하여 첫째 자리까지 출력 )

입력 예시

1 2 3

출력 예시

6

2.0

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int [] values = new int [3];
		for (int i = 0; i < values.length; i++) {
			values[i] = scan.nextInt();
		}
        scan.close();
		if(values.length > 2) {
			long total = values[0] + values[1] + values[2];
			
			double avg = total / 3.0;
			System.out.println(total);
			System.out.println(String.format("%.1f", avg));
		}
	}
}

 

 

Swift 4.2

import Foundation

let line = readLine()
if line != nil {
    let split = line!.split(separator: " ")
    if split.count == 3 {
        var values = [Int]()
        for s in split {
            if let value = Int(s) {
                values.append(value)
            }
        }
        if values.count == 3 {
            let total = values[0] + values[1] + values[2]
            let avg = Float(total) / 3.0
            print(total)
            print(String.init(format: "%.1f", avg))
        }
    }
}

 

 

뭐.. 이런곳에서는 의미는 없습니다만

보통 배열이라던가 반복이라던가 할때 직접적으로 숫자를 써서 위치를 입력받는건 위험한 일입니다.

최대한 자동으로되게 혹은 그값이 정말로 존재하는지에대해 검사를 해야합니다만

이런문제에선 의미가 없지요.

https://codeup.kr/problem.php?id=1046

 

[기초-산술연산] 정수 세 개 입력받아 합과 평균 출력하기

정수 세 개를 입력받아 합과 평균을 출력하는 프로그램을 작성해보자. (단, -2147483648 ~ 2147483647)

codeup.kr

 

1041 : [기초-산술연산] 문자 한 개 입력받아 다음 문자 출력하기 with Swift

38. 콘솔에서 영문자 한 개를 입력받아, 입력된 문자의 아스키코드값의 다음에 해당하는 문자를 출력하라.

입력 예시

a

출력 예시

b

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String line = scan.nextLine();
        scan.close();
		char [] charArray = line.toCharArray();
		if(charArray.length > 0) {
			System.out.println((char) (charArray[0] + 1));
		}
	}
}

 

 

Swift 4.2

import Foundation

let line = readLine()
if line != nil {
    if let printValue = line!.first {
        let unicodes = printValue.unicodeScalars
        for uni in unicodes {
            if let printValue = Unicode.Scalar(uni.value + 1) {
                print(printValue)
            }
        }
    }
}

 

 

https://codeup.kr/problem.php?id=1041

 

[기초-산술연산] 문자 한 개 입력받아 다음 문자 출력하기

영문자 한 개를 입력받아, 그 다음 문자를 출력하는 프로그램을 작성해보자. 영문자 '$A$'의 다음 문자는 '$B$'이고, 문자 '$0$'의 다음 문자는 '$1$'이다.

codeup.kr

 

 

 

 

 

 

 

1042 : [기초-산술연산] 정수 두 개 입력받아 나눈 몫 출력하기 with Swift

39. 콘솔에서 정수 두 개(a,b)를 입력 받아 a를 b로 나눈 몫을 출력하라.

입력 범위: 0 ~ 2147483647

입력 예시

1 3

출력 예시

0

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int value0 = scan.nextInt();
		int value1 = scan.nextInt();
        scan.close();
		if(value1 > 0) {
			System.out.println(value0/value1);
		}
	}
}

 

 

Swift 4.2

import Foundation

let line = readLine()
if line != nil {
    let array = line!.split(separator: " ")
    if array.count == 2 {
        if let value0 = Int(array[0]), let value1 = Int(array[1]) {
            if value1 > 0 {
                print(value0/value1)
            }
        }
    }
}

 

 

 

https://codeup.kr/problem.php?id=1042

 

[기초-산술연산] 정수 두 개 입력받아 나눈 몫 출력하기

C언어에서 a/b 연산의 결과는 a를 b로 나눈 몫이 계산된다. 실수/정수,  정수/실수,  (float)정수/정수,  정수/(float)정수  의 연산은 나눈 결과가 실수로 계산된다. (float)(정수/정수)는 정수/정수의 결과인 정수를 실수형(float)로 바꾸는 것으로, 정수가 실수 형태로 변환되는 것이니 주의한다. 정수/실수... 에서 계산 결과가 실수형으로 바뀌는 것과 같이 계산 결과의 데이터형이 자동으로 바뀌는 것을 묵시적 (데이터)형 변환이

codeup.kr

 

 

 

 

 

 

1043 : [기초-산술연산] 정수 두 개 입력받아 나눈 나머지 출력하기 with Swift

40. 콘솔에서 정수 두개(a,b)를 입력 받아 a를 b로 나눈 나머지를 출력하라.

입력범위: 0 ~ 2147483647

입력 예시

1 3

출력 예시

1

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int value0 = scan.nextInt();
		int value1 = scan.nextInt();
        scan.close();
		if(value1 > 0) {
			System.out.println(value0%value1);
		}
	}
}

 

 

Swift 4.2

import Foundation

let line = readLine()
if line != nil {
    let array = line!.split(separator: " ")
    if array.count == 2 {
        if let value0 = Int(array[0]), let value1 = Int(array[1]) {
            if value1 > 0 {
                print(value0%value1)
            }
        }
    }
}

 

 

https://codeup.kr/problem.php?id=1043

 

[기초-산술연산] 정수 두 개 입력받아 나눈 나머지 출력하기

정수 두 개(a, b) 를 입력받아 a를 b로 나눈 나머지를 출력하는 프로그램을 작성해보자. (단, 두 개의 정수 a, b의 범위는 0 ~ 2147483647이고, b는 0이 아니다.)

codeup.kr

 

 

 

 

1038 : [기초-산술연산] 정수 두 개 입력받아 합 출력하기1 with Swift

35. 콘솔에서 두 개의 정수를 입력받아 합을 출력하라.

입력 : 한 줄에 공백으로 두개의 정수가 구분되어 입력된다. 입력되는 정수의 범위는 다음과 같다.

입력 범위 : -1073741824 ~ 1073741824

입력 예시

123 -123

출력 예시

0

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int value0 = scan.nextInt();
		int value1 = scan.nextInt();
		scan.close();
		System.out.println(value0 + value1);
	}
}

 

 

Swift 4.2

import Foundation

let line = readLine()
if line != nil {
    let valueArray = line!.split(separator: " ")
    if valueArray.count == 2 {
        if let value0 = Int(valueArray[0]), let value1 = Int(valueArray[1]) {
            print((value0 + value1))
        }
    }
}

 

 

 

이번문제는 읽자마자 아! 많이 하는 실수인 계산시의 중간값이 범위를 오버하는걸 방지하는 문제이구나!

라고 생각했는데 밑의 단 범위는 이것이다 라고 바로 부정당했네요.

잠깐 이야기하자면

int 의 범위내의 입력값과

int의 범위 내의 출력값이 나온다고해도

그 중간값이 int의 범위내에 있다고 생각 할 수 없습니다.

중간식이 단순 연산이라면 금방 눈치를 채겠지만 막 복잡한 식이 들어가면 어느순간에 범위를 넘어서 버릴수도 있습니다.

물론 이러한 문제는 금방 디버깅시에 발견가능하지만 중간값을 생각안하면 디버깅툴에서 알려주는 라인의 오류를 이해를 못할 수 도 있기에

잠깐 이야기 해봤습니다.

https://codeup.kr/problem.php?id=1038

 

[기초-산술연산] 정수 두 개 입력받아 합 출력하기1

정수 2개를 입력받아 합을 출력하는 프로그램을 작성해보자. (단, 입력되는 정수는 -1073741824 ~ 1073741824 이다.)

codeup.kr

 

 

 

 

 

 

 

 

1039 : [기초-산술연산] 정수 두 개 입력받아 합 출력하기2 with Swift

36.콘솔에서 정수 두 개를 입력받아 합을 출력하라. 단 입력 되는 정수의 범위는 다음과 같다.

입력 범위 : −2147483648 ∼ 2147483647

입력: 두 개의 정수가 공백으로 구분되어 한 줄에 입력된다.

입력 예시

2147483647 2147483647

출력 예시

4294967294

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		long longValue = 0;
		for (int i = 0; i < 2; i++) {
			longValue += scan.nextInt();
		}
		scan.close();
		System.out.println(longValue);
	}
}

 

 

 

Swift 4.2

import Foundation

let line = readLine()
if line != nil {
    let valueArray = line!.split(separator: " ")
    if valueArray.count == 2 {
        if let value0 = Int(valueArray[0]), let value1 = Int(valueArray[1]) {
            print( value0 + value1 )
        }
    }
}

 

 

 

스위프트가 이전 모든 값이 int범위였을때랑 같은 소스다! 잘못한거 아니냐! 라고 말할수 있겠으나

사실 스위프트의 기본 Int 범위는 상당히 넓다.

Swift 4.2 값 범위 - 소스

print("Int       : \(Int.min) ~ \(Int.max)")
print("Int8      : \(Int8.min) ~ \(Int8.max)")
print("Int16     : \(Int16.min) ~ \(Int16.max)")
print("Int32     : \(Int32.min) ~ \(Int32.max)")
print("Int64     : \(Int64.min) ~ \(Int64.max)")
print("UInt      : \(UInt.min) ~ \(UInt.max)")
print("UInt8     : \(UInt8.min) ~ \(UInt8.max)")
print("UInt16    : \(UInt16.min) ~ \(UInt16.max)")
print("UInt32    : \(UInt32.min) ~ \(UInt32.max)")
print("UInt64    : \(UInt64.min) ~ \(UInt64.max)")
print("CLong     : \(CLong.min) ~ \(CLong.max)")
print("CLongLong : \(CLongLong.min) ~ \(CLongLong.max)")
print("ULONG     : \(ULONG.min) ~ \(ULONG.max)")

 

 

Swift 4.2 값 범위 - 결과

Int : -9223372036854775808 ~ 9223372036854775807

Int8 : -128 ~ 127

Int16 : -32768 ~ 32767

Int32 : -2147483648 ~ 2147483647

Int64 : -9223372036854775808 ~ 9223372036854775807

UInt : 0 ~ 18446744073709551615

UInt8 : 0 ~ 255

UInt16 : 0 ~ 65535

UInt32 : 0 ~ 4294967295

UInt64 : 0 ~ 18446744073709551615

CLong : -9223372036854775808 ~ 9223372036854775807

CLongLong : -9223372036854775808 ~ 9223372036854775807

ULONG : 0 ~ 4294967295

대부분 보면 결국 Int32 아니면 Int64 범위입니다.

Swift 4.2에선 기본Int 범위가 Int64범위라 이번 문제에선 결국 중간값에대한 형을 변환안해줘되 되요

https://codeup.kr/problem.php?id=1039

 

[기초-산술연산] 정수 두 개 입력받아 합 출력하기2

+ 연산자를 사용하면 된다. 단, 계산된 결과가 int 데이터형의 표현 범위를 넘어가기 때문에 다른 데이터형을 사용해야 한다. [주의] int 데이터형은 %d로 입출력하고, long long int 데이터형은 %lld로 입출력한다.

codeup.kr

 

 

1040 : [기초-산술연산] 정수 한 개 입력받아 부호 바꿔 출력하기 with Swift

37. 콘솔에서 한 개의 정수를 입력받고 부호를 바꿔 출력 하라.

입력 범위: -2147483647 ~ 2147483647

입력 예시:

-1

출력 예시:

1

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int value = scan.nextInt();
		scan.close();
		System.out.println(-value);
	}
}

 

 

Swift 4.2

import Foundation

let line = readLine()
if line != nil {
    if let value = Int(line!) {
        print(-value)
    }
}

 

 

https://codeup.kr/problem.php?id=1040

 

[기초-산술연산] 정수 한 개 입력받아 부호 바꿔 출력하기

단항 연산자인 -(negative)를 변수 앞에 붙이면 부호가 반대로 바뀌어 계산된다. [예시] int a; scanf("%d", &a); printf("%d", -a);

codeup.kr

 

+ Recent posts