1026 : [기초-입출력] 시분초 입력받아 분 만 출력하기 with Swift

 

23. 콘솔에서 시간을 시:분:초 형태로 입력받아 분 만 출력해보시오.

입력 예시

12:9:50

출력 예시

9

JAVA

 

import java.util.Scanner;
import java.util.regex.Pattern;

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		String pattern = "^[0-9]*:[0-9]*:[0-9]*$";
		
		String line = scanner.nextLine();
		scanner.close();
		
		if(Pattern.matches(pattern, line)) {
			String[] dotPars = line.split(":");
			if(dotPars.length > 2) {
				int hour = Integer.parseInt(dotPars[0]);
				int minute = Integer.parseInt(dotPars[1]);
				int second = Integer.parseInt(dotPars[2]);
				System.out.println(minute);
 
			}
		}
	}
}

 

Swift 4.2

import Foundation
let line = readLine()
//var line:String? = "2012.1.1"
if line != nil {
    let p = "^[0-9]*:[0-9]*:[0-9]*$"
    do {
        let regex = try NSRegularExpression(pattern: p)
        let results = regex.matches(in: line!, options: [], range: NSRange(line!.startIndex..., in: line!))
        let arry = results.map { (cheking) -> String in
            let str = String(line![Range(cheking.range, in: line!)!])
            let arry = str.split(separator: ":")
            if arry.count > 2 {
                let h = Int(arry[0])
                let m = Int(arry[1])
                let s = Int(arry[2])
                guard h != nil, m != nil, s != nil else {
                    return ""
                }
                return "\(m!)"
            } else {
                return ""
            }
        }
        if arry.count > 0 {
            print(arry.first!)
        }
    }catch let err {
        print("ERROR: \(err.localizedDescription)")
    }
}

이번 문제는 1019번 년월일 소스를 변경해서 돌렸습니다.

패턴 매칭은 앞으로도 소스를 우려먹을수 있겠네요~

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

 

[기초-입출력] 시분초 입력받아 분 만 출력하기

 int h, m, s; scanf("%d:%d:%d", &h, &m, &s);

codeup.kr

 

 

 

 

 

1027 : [기초-입출력] 년월일 입력받아 형태 바꿔 출력하기 with Swift

24. 콘솔에서 년.월.일을 입력받아 일-월-년 형태로 출력하라.

입력 예시

2014.07.15

출력 예시

15-07-2014

Java

import java.util.Scanner;
import java.util.regex.Pattern;

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		String pattern = "^[0-9]*.[0-9]*.[0-9]*$";
		
		String line = scanner.nextLine();
		scanner.close();
		
		if(Pattern.matches(pattern, line)) {
			String[] dotPars = line.split("\\.");
			if(dotPars.length > 2) {
				int year = Integer.parseInt(dotPars[0]);
				int month = Integer.parseInt(dotPars[1]);
				int day = Integer.parseInt(dotPars[2]);
				System.out.println(String.format("%02d-%02d-%04d", day,month,year));
			}
		}
	}
}

 

swift 4.2

import Foundation
let line = readLine()
//var line:String? = "2012.1.1"
if line != nil {
    let p = "^[0-9]*.[0-9]*.[0-9]*$"
    do {
        let regex = try NSRegularExpression(pattern: p)
        let results = regex.matches(in: line!, options: [], range: NSRange(line!.startIndex..., in: line!))
        let arry = results.map { (cheking) -> String in
            let str = String(line![Range(cheking.range, in: line!)!])
            let arry = str.split(separator: ".")
            if arry.count > 2 {
                let y = Int(arry[0])
                let m = Int(arry[1])
                let d = Int(arry[2])
                guard y != nil, m != nil, d != nil else {
                    return ""
                }
                return String.init(format: "%02d-%02d-%04d", arguments:[d!,m!,y!])
            } else {
                return ""
            }
        }
        if arry.count > 0 {
            print(arry.first!)
        }
    }catch let err {
        
        print("ERROR: \(err.localizedDescription)")
    }
}

이번에도 역시 소스를 우려먹었습니다. 패턴이랑 출력만 바꿔주면되서 편하네요~

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

 

[기초-입출력] 년월일 입력받아 형태 바꿔 출력하기

년월일을 출력하는 방법은 나라마다, 형식마다 조금씩 다르다. 날짜를 년월일(yyyy.mm.dd)의 형태로 입력받아, 일월년(dd-mm-yyyy)의 형태로 출력하는 프로그램을 작성해보자. (단, 한 자리 일/월은 0을 붙여 두 자리로, 년도는 0을 붙여 네 자리로 출력한다.)

codeup.kr

 

 

 

1023 : [기초-입출력] 실수 한 개 입력받아 부분별로 출력하기 with Swift

20. 콘솔에서 실수 한 개를 입력받고 이를 정수부분과 실수 부분으로 나누어 출력하라

입력 예시

11.414213

출력 예시

11

414213

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		String line = scanner.nextLine();
		String []  pars = line.split("\\.");
		if( pars.length > 1 ) {
			System.out.println(pars[0]);
			System.out.println(pars[1]);
		}
	}
}

Swift 4.2

import Foundation

//print("입력 - ")

if let line = readLine() {
    let pars = line.split(separator: ".")
    if pars.count > 1 , pars.count < 3 {
        print(pars.first!)
        print(pars.last!)
    }
}

 

 

이건 할까 말까 하다가

실수로 입력받아 정수로 캐스트후 나온 값으로 실수와 정수부분을 나누어 출력하는걸로 해보자 라는 생각에

잡았는데...

위에는 안적었으나 소수점 자리 6자리까지 정확하게 나와야하는듯하다..

하지만 계속 6번째 자리에서 오차가발생하여 어떻게 오차를 줄일까 고민하다가 그냥 문자열로 입출력..

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

 

[기초-입출력] 실수 한 개 입력받아 부분별로 출력하기

실수 한 개가 입력된다. (단, 입력 값은 절댓값이 정수부가 $100,000$을 넘지 않으며, 소수점 이하는 0으로 시작하지 않으며, 6자리이하이다.)

codeup.kr

 

 

 

 

 

1024 : [기초-입출력] 단어 한 개 입력받아 나누어 출력하기 with swift

21. 콘솔에서 영단어를 입력받고 입력받은 단어를 한줄헤 한 문자씩 분리해 출력하라.

입력 예시

Boy

출력 예시

'B'

'o'

'y'

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		String line = scanner.nextLine();
		char []  pars = line.toCharArray();
		
		for (char c : pars) {
			System.out.println("'" + c + "'");
		}
	}
}

 

Swift 4.2

import Foundation

if let line = readLine() {
    for c in line {
        print("'\(c)'")
    }
}

 

 

점차 내가 뭐하고있는지 모를지경...

왜 이걸 시작했을까

문제가 뭐가나오는지좀 보고 시작할껄

문법문제가 그만좀 나왔으면 좋겠습니다.

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

 

[기초-입출력] 단어 한 개 입력받아 나누어 출력하기

C언어에서는 문장을 저장하기 위해 특별한 방법을 사용하지 않고 배열이라는 연속된 공간에 문자들을 연속으로 한 개씩 저장하는 방법을 사용한다. 단, 문자열(문장)의 마지막임을 나타내기 위해 문자열의 마지막에 널(NULL) 문자라는 특별한 의미를 갖는 문자를 삽입해 문장임을 나타낸다. 널(NULL)은 영어 단어 자체의 의미로는, 아무런 가치가 없는 또는 아무것도 없는, 사용되지 않은 등의 의미를 가지는데 문자로는 '\0', 아스키문자의 정수값은 0을 의미하며

codeup.kr

 

 

1025 : [기초-입출력] 정수 한 개 입력받아 나누어 출력하기 with Swift

 

22. 콘솔에서 다섯자리로 이루어진 한 개의 정수를 입력받고 각 자리별로 구분해 출력하라.

입력 예시

74552

출력 예시

[70000]

[4000]

[500]

[50]

[2]

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int line = scanner.nextInt();
//		int line = 75254;
		
		if(line >= 10000 && line <= 99999) {
			func1(line, 10000);
		}
	}
	public static void func1(int target , int p) {
		int temp = (target / p) * p;
		System.out.println("["+temp+"]");
		int next_p = p / 10;
		if(next_p > 0 ) {
			func1(target - temp, next_p);
		} else {
			return;
		}
	}
}

Swift 4.2

import Foundation

public func func1(target : Int, place p: Int) {
    let temp = (target / p) * p
    print("[\(temp)]")
    let next_p = p / 10
    if next_p > 0 {
        return func1(target: target - temp, place: next_p)
    } else {
        return;
    }
}
if let line = readLine() {
    let clean = line.trimmingCharacters(in: .whitespaces)
    if clean.count == 5 {
        if let value = Int(clean) {
            if value >= 10000, value <= 99999 {
                func1(target: value,place: 10000)
            }
        }
    }
}

스위프트는 ios로 접해서 커맨드라인 프로젝트는 이번 기초100제에서 처음써본다.

함수를 아래에다 정의해놨더니 위에있는 녀석이 함수를 못찾는일이 발생..

아 c가 베이스라서 위에서 선언을해줘야하는구나 라며 여러가지 방법으로 타이핑해봤으나 다안된다..

결국 함수를 실행라인위로 올렸는데 도대체 뭐가뭔지...

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

 

[기초-입출력] 정수 한 개 입력받아 나누어 출력하기

scanf("%1d%1d%1d%1d%1d", &a, &b, &c, &d, &e); 를 사용하면 입력 받는 숫자를 1개씩 잘라 a, b, c, d, e, 변수에 저장할 수 있다. [예시] 읽어들인 값을 형태를 바꿔 출력하기 위해 printf("[%d]\n", a*10000); 과 같은 방법을 사용할 수 있다.

codeup.kr

 

1020 : [기초-입출력] 주민번호 입력받아 형태 바꿔 출력하기 with swift

17. 콘솔에서 주민등록번호를 받아 형태를 바꿔 출력하라.

입력 형식 : XXXXX-XXXXXXX

출력 형식: XXXXXXXXXXXXX

입력 예시

750904-1123214

출력 예시

7509041123214

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		String line = scanner.nextLine();
		scanner.close();
		
		if(line.length() > 13) {
			String [] pars = line.split("-");
			if(pars.length > 1) {
				System.out.println(pars[0] + pars[1]);
			} else {
				System.out.println("ERROR: 입력 형식 오류, 잘못된 문자가 입력됨");
			}
		} else {
			System.out.println("ERROR: 입력 형식 오류, 자릿수 부족");
		}
		
	}
}

Swift 4.2

import Foundation

if let line = readLine() {
    if line.count > 13 {
        var pars = line.split(separator: "-")
        if pars.count > 1 {
            print(pars[0] + pars[1])
        } else {
            print("Error: 입력 형식 오류, 잘못된 문자가 입력됨")
        }
    } else {
        print("Error: 입력 형식 오류, 자릿수 부족")
    }
}

 

패턴을 만들어서 주민등록 패턴인지 검사하는 과정을 추가할까하다가 귀찮아서 포기했습니다.

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

 

[기초-입출력] 주민번호 입력받아 형태 바꿔 출력하기

주민등록번호는 다음과 같이 구성된다. XXXXXX-XXXXXXX 앞의 6자리는 생년월일(yymmdd)이고 뒤 7자리는 성별, 지역, 오류검출코드이다. 주민등록번호를 입력받아 형태를 바꿔 출력해보자.

codeup.kr

 

 

 

 

 

1021 : [기초-입출력] 단어 한 개 입력받아 그대로 출력하기 with Swift

18.하나의 단어를 입력받아 그대로 출력

(단, 단어의 길이는 50글자 이하이다.)

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		String line = scanner.nextLine();
		scanner.close();
		if(line.length() > 0 && line.length() < 51 ){
			System.out.println(line);
		}
	}
}

 

Swift 4.2

import Foundation

//print("입력 - ")

if let line = readLine() {
    if line.count > 0, line.count < 51 {
       print(line)
    }
}

 

 

 

패턴 매칭하는거 까지 조금씩 올라가서 좋았는데

갑자기 난이도가 다시 내려가기 시작해서 안타깝습니다.

기초공부라도 될까해서 잡았는데 그냥 타이핑 노가다가 될거같은 느낌이 풀풀 풍기네요

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

 

[기초-입출력] 단어 한 개 입력받아 그대로 출력하기

한 단어가 입력된다. (단, 단어의 길이는 50글자 이하이다.)

codeup.kr

 

 

 

 

 

1022 : [기초-입출력] 문장 한 개 입력받아 그대로 출력하기 with Swift

19. 콘솔에서 한 개의 문장을 입력받고, 그대로 출력하라.

단 2000자를 넘지않는다.

원래 C를 바탕으로 제작된 문제라 그런가 로우레벨 입출력을 바라는거 같습니다.

아무작업없이 단순히 입력받고 그대로 출력하는건 이제 그냥 뛰어넘어야겠네요..

그래서 뛰어 넘겠습니다.

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		String line = scanner.nextLine();
		scanner.close();
		if(line.length() > 0 && line.length() <= 2000 ){
			System.out.println(line);
		}
	}
}

Swift 4.2

import Foundation

let line = readLine()
if line != nil {
    if line!.count > 0 , line!.count <= 2000 {
        print(line!)
    }
}

 

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

 

[기초-입출력] 문장 한 개 입력받아 그대로 출력하기

char data[2001]; fgets(data, 2000, stdin); printf("%s", data); 를 실행하면 공백이 포함된 문장을 키보드(stdin)로 입력 받아 최대 2000 문자(영문자)까지 data[] 공간에 저장하고 출력할 수 있다. 한글의 경우 1000글자까지 가능하다. %s 는 문자열(string)로 출력하라는 의미이다.

codeup.kr

 

1017 : [기초-입출력] 정수 한 개 입력받아 세 번 출력하기  with Swift

14. 콘솔에서 정수를 한 개 입력 받고 이를 3번 출력하라.

입력 예시

125

출력 예시

125 125 125

JAVA

1

2

3

4

5

6

7

8

9

10

import java.util.Scanner;

 

public class Main {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        int value1 = scanner.nextInt();

        scanner.close();

        System.out.println(value1 + " " + value1 + " " + value1);

    }

}

Colored by Color Scripter

cs

 

Swift 4.2

1

2

3

4

5

6

7

import Foundation

let line = readLine()

if line != nil {

    if let value = Int(line!) {

        print("\(value) \(value) \(value)")

    }

}

Colored by Color Scripter

cs

 

 

앞으로 대략 85문제 남았는데 계속 이런것만 하진 않을까 걱정됩니다..

알고리즘 문제는 언제 나오려나

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

 

[기초-입출력] 정수 한 개 입력받아 세 번 출력하기

printf("%d %d %d", a, a, a); 와 같은 방법으로 한 변수의 값을 여러 번 출력할 수 있다.

codeup.kr

 

 

 

 

 

1018 : [기초-입출력] 시간 입력받아 그대로 출력하기 with Swift

 

15. 콘솔에서 시간이 특정 형식에 맞추어 입력될때 그대로 출력하시오.

입력 - 시와분 이  :  으로 구분되어 입력됨.

입력 예시

3:16

출력 예시

3:16

JAVA

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

import java.util.Scanner;

import java.util.regex.Pattern;

 

public class Main {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        String pattern = "^[0-9]*:[0-9]*$";

        

        String line = scanner.nextLine();

        scanner.close();

        if(Pattern.matches(pattern, line)) {

            System.out.println(line);

        }

    }

}

Colored by Color Scripter

cs

 

Swift 4.2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

import Foundation

//print("입력: ")

let line = readLine()

//var line:String? = "adsf1:30asdf"

if line != nil {

    let p = "[0-9]*:[0-9]*"

    do {

        let regex = try NSRegularExpression(pattern: p)

        let results = regex.matches(in: line!, options: [], range: NSRange(line!.startIndex..., in: line!))

        let arry = results.map { (cheking) -> String in

            return String(line![Range(cheking.range, in: line!)!])

        }

        if arry.count > 0 {

            print(arry.first!)

        }

    }catch let err {

        print("ERROR: \(err.localizedDescription)")

    }

}

Colored by Color Scripter

cs

이번건 쪼....금 이것저것 벗어나버렸습니다. 그냥 문자열에서 "숫자:숫자" 형식을 가진녀석 을 뽑아내는 코드가 되버렸네요.

원래 문제의 의미는 형식을 갖춘 입력받기! 뭐 그런거 같아서 자바쪽도 그러한 형식 아니면 출력하지마! 라고 막아놨지만

스위프트 쪽은 약간 다르게 문자열에서 해당 형식을 뽑아내는식으로 해봤습니다.

혹시나 몇개 더있을경우 첫번째꺼만 출력해라 라고 적었네요.

정규식 사용에 대해 공부해본 좋은 문제였습니다.

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

 

[기초-입출력] 시간 입력받아 그대로 출력하기

scanf( ) 함수는 형식(format)에 맞추어 입력 받는 함수이기 때문에 입력 받고자 하는 형식에 맞게 적어주면 된다. [예시] scanf("%d:%d", &h, &m); //h와 m에 값이 10진수로 저장된다.

codeup.kr

 

 

 

 

 

1019 : [기초-입출력] 년월일 입력받아 형식에 맞게 출력하기 with Swift

16. 콘솔에서 년,월, 일을 입력받아 형식에 맞게 출력하라.

입력 - 년.월.일

출력 - yyyy.mm.dd

입력 예시

2012.1.1

2012.01.01

출력 예시

2012.01.01

2012.01.01

JAVA

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

import java.util.Scanner;

import java.util.regex.Pattern;

 

public class Main {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        String pattern = "^[0-9]*.[0-9]*.[0-9]*$";

        

        String line = scanner.nextLine();

        scanner.close();

        if(Pattern.matches(pattern, line)) {

            String[] dotPars = line.split("\\.");

            System.out.println(dotPars.length);

            int year = Integer.parseInt(dotPars[0]);

            int month = Integer.parseInt(dotPars[1]);

            int day = Integer.parseInt(dotPars[2]);

            System.out.println(String.format("%04d.%02d.%02d", year,month,day));

        }

        

    }

}

Colored by Color Scripter

cs

 

Swift 4.2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

import Foundation

let line = readLine()

//var line:String? = "2012.1.1"

if line != nil {

    let p = "^[0-9]*.[0-9]*.[0-9]*.[0-9]*$"

    do {

        let regex = try NSRegularExpression(pattern: p)

        let results = regex.matches(in: line!, options: [], range: NSRange(line!.startIndex..., in: line!))

        let arry = results.map { (cheking) -> String in

            let str = String(line![Range(cheking.range, in: line!)!])

            let arry = str.split(separator: ".")

            if arry.count > 2 {

                let y = Int(arry[0])

                let m = Int(arry[1])

                let d = Int(arry[2])

                guard y != nil, m != nil, d != nil else {

                    return ""

                }

                return String.init(format:"%04d.%02d.%02d",arguments:[y!,m!,d!])

            } else {

                return ""

            }

        }

        if arry.count > 0 {

            print(arry.first!)

        }

    }catch let err {

        print("ERROR: \(err.localizedDescription)")

    }

}

Colored by Color Scripter

cs

 

이번에는 지난문제 코드에서 단순히 패턴과 출력 형식만 바꿔줬습니다....

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

 

[기초-입출력] 년월일 입력받아 형식에 맞게 출력하기

입력받은 년, 월, 일을 출력한다. 단, 자릿수는 yyyy.mm.dd형태로 출력한다. (입출력 예시 참고, %02d를 사용하면 2칸을 사용해 출력하는데, 1자리 수인 경우 앞에 0이 붙어 출력된다.)

codeup.kr

 

1013 : [기초-입출력] 정수 두 개 입력받아 그대로 출력하기 with Swift

 

11. 콘솔에서 정수 두 개를 입력받아 그대로 출력하라.

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

입력 예시

1 2

출력 예시

1 2

JAVA

1
2
3
4
5
6
7
8
9
10
11
12
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int value1 = scanner.nextInt();
        int value2 = scanner.nextInt();
        System.out.println(value1 + " " + value2);
        scanner.close(); 
    }
}
 
cs

 

Swift 4.2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import Foundation
 
func parseLine(str:String-> [Int]{
    var resultValue = [Int]()
    let temprorary = str.split(separator: " ")
    for sub in temprorary {
        if let value = Int(sub) {
            resultValue.append(value)
        }
    }
    return resultValue
}
 
let line = readLine()
if line != nil {
    let resultValue:[Int= parseLine(str: line!)
    if resultValue.count > 1 {
        print(String.init(format: "%d %d", resultValue[0],resultValue[1]))
    }
}
cs

 

 

솔직히 입력받는거에 readLine 말고 다른게 있을수도 있습니다;;

자바의 nextInt() 같은 편리한게요.

하지만 입력 부분을 대충 검색해봤는데 안보여서 그냥 readline으로 받고 스페이스를 기준으로 파싱해서 출력했습니다.

 

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

 

[기초-입출력] 정수 두 개 입력받아 그대로 출력하기

int a, b; scanf("%d %d", &a, &b); printf("%d %d", a, b); 와 같은 방법으로 가능하다.

codeup.kr

 

//추가-

기존에 올렸던 블로그의 소스에서 한줄입력을 받고 나누는 부분을 따로 함수로 밖으로 빼내어 올리겠습니다

 

 

1014 : [기초-입출력] 문자 두 개 입력받아 순서 바꿔 출력하기 with Swift

12. 콘솔에서 두 개의 문자를 입력 받은 후 순서를 바꿔 출력하라.

입력 예시

A b

출력 예시

b A

JAVA

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

import java.util.Scanner;

 

public class Main {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        String line = scanner.nextLine();

        scanner.close();

        

        String[] words = line.split(" ");

        if(words.length == 2) {

            String resultString = new String();

            for (int i = words.length - 1; i >= 0--i) {

                resultString += " " + words[i];

            }

            System.out.println(resultString.trim());

        }

         

    }

}

Colored by Color Scripter

cs

 

Swift 4.2

1

2

3

4

5

6

7

8

9

10

11

12

import Foundation

let line = readLine()

if line != nil {

    var temporary = line!.split(separator: " ")

    temporary.reverse()

    

    var resultString = String()

    for sub in temporary {

        resultString.append(" \(sub)")

    }

    print(resultString.trimmingCharacters(in: .whitespaces))

}

Colored by Color Scripter

cs

 

스위프트는 이전과 비슷하게됐네요.

이번은 자바에서도 다른 좋은게 있지않을까 생각되지만, 찾아보기도 귀찮아졌습니다.

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

 

[기초-입출력] 문자 두 개 입력받아 순서 바꿔 출력하기

char x, y; scanf("%c %c", &x, &y); printf("%c %c", y, x); //출력되는 순서를 작성 와 같은 방법으로도 해결할 수 있다.

codeup.kr

 

 

 

 

 

 

 

1015 : [기초-입출력] 실수 한 개 입력받아 소수점 이하 둘째 자리까지 출력하기 with Swift

 

13. 콘솔에서 실수(float)를 한 개를 입력받아 소수점 이하 3째 자리에서 반올림하여 2째 자리까지 출력하시오.

입력 예시

1.59654

출력 예시

1.60

JAVA

1

2

3

4

5

6

7

8

9

10

import java.util.Scanner;

 

public class Main {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        Double value1 = scanner.nextDouble();

        System.out.println(String.format("%.2f", value1));

        scanner.close();

    }

}

Colored by Color Scripter

cs

 

Swift 4.2

1

2

3

4

5

6

7

8

import Foundation

let line = readLine()

if line != nil {

    if let floatValue = Double(line!) {

        let printValue = String.init(format:"%.2f", arguments: [floatValue])

        print(printValue)

    }

}

Colored by Color Scripter

cs

 

이전에 소수점자리 0으로 채우기에서 그냥 .2f로 변경한거네요..

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

 

[기초-입출력] 실수 한 개 입력받아 소수점 이하 둘째 자리까지 출력하기

double로 변수를 선언한 경우 %.2lf로 출력하고, float으로 변수를 선언한 경우 %.2f로 출력하면, 소수점 3째 자리에서 반올림 하여 2째 자리까지 출력할 수 있다.

codeup.kr

 

 

 

 

1010 : [기초-입출력] 정수 한 개 입력받아 그대로 출력하기 with Swift

 

8. 콘솔에서 정수값 한개를 입력받고, 입력받은 값을 그대로 출력하라

입력 예시

15

출력 예시

15

 

JAVA

import java.util.Scanner;

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

 

Swift 4.2

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

 

이번은 플레이그라운드에서 실행할수 없어서 Mac의 커맨드라인프로젝트로 생성하였습니다.

ios만드는거로 바로 시작해서 표준입력받는건 처음이네요.

여담으론 숫자 이외의 다른게 들어왓을때의 처리를 안해줘서 오답처리나올줄알았는데

정답이 나왔습니다 ;;

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

 

[기초-입출력] 정수 한 개 입력받아 그대로 출력하기

키보드로 입력한 정수값을 그대로  출력하는 프로그램을 작성해보자.

codeup.kr

 

 

 

 

1011 : [기초-입출력] 문자 한 개 입력받아 그대로 출력하기 with Swift

 

9. 콘솔에서 키보드로 문자 한 개를 입력하고, 그대로 출력하라.

입력 예시

p

출력 예시

p

JAVA

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        String value1 = scanner.next();

        scanner.close();

        System.out.println(value1);

    }

}

 

Swift 4.2

import Foundation
let line = readLine()
if line != nil { print(line!) }

이번 역시 맥 커맨드라인 프로젝트로 생성하였습니다.

왜 코드업 기초100제 추천영상에서 초중고 처음 접하는사람에게 추천! 이라는 말이 들어있었는지 9번문제부터 깨달았습니다.

 

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

 

[기초-입출력] 문자 한 개 입력받아 그대로 출력하기

키보드로 입력한 문자를 그대로 출력하는 프로그램을 작성해보자.

codeup.kr

 

 

 

 

 

1012 : [기초-입출력] 실수 한 개 입력받아 그대로 출력하기 with Swift

 

10. 콘솔에서 키보드로 소수점 6자리 이하의 실수를 한개 입력받고, 그대로 출력하라.

입렵 예시

1.414000

출력 예시

1.414000

JAVA

1

2

3

4

5

6

7

8

9

10

11

import java.util.Scanner;

 

public class Main {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        Double value1 = scanner.nextDouble();

        System.out.println(String.format("%.06f", value1));

        scanner.close();

    }

}

 

Colored by Color Scripter

cs

 

Swift 4.2

1

2

3

4

5

6

7

8

import Foundation

let line = readLine()

if line != nil {

    if let floatValue = Double(line!) {

        let printValue = String.init(format:"%.06f", arguments: [floatValue])

        print(printValue)

    }

}

Colored by Color Scripter

cs

소수점 6자리까지 깔끔히맞춰서 출력하는 문제였습니다.;;

솔직히 의미가 있나 싶은 코드이긴한데 뭐 까라면 까야죠

스위프트로 콘솔쪽 입출력은 해본적이 없어서 여러가지로 새롭네요

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

 

[기초-입출력] 실수 한 개 입력받아 그대로 출력하기

키보드로 입력한 실수(소수점이 있는 수)를 그대로 출력하는 프로그램을 작성해보자.

codeup.kr

 

 

 

 

+ Recent posts