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

 

+ Recent posts