74. 콘솔에서 정수 한 개가 입력될때, 0 부터 그 수 까지 출력하라

입력 범위 : 1 ~ 100

입력 예시

5

출력 예시

0

1

2

3

4

5

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int endNumber = scan.nextInt();
		int printValue = 0;
		do {
			System.out.println(printValue++);
		} while (printValue <= endNumber);
	}
}

Swift 4.2

import Foundation

let line = readLine();
if line != nil,let endNumber = Int(line!){
    var printNumber = 0
    repeat {
        print(printNumber)
        printNumber += 1
    } while printNumber <= endNumber
}

 

 

그러고보니 이전 문제부터 do - while 을 쓰고있는데 이걸 써보는 문법문제입니다.

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

반응형

73. 콘솔에서 문자 1개가 입력될때 a 부터 그문자 까지 순서대로 출력하라.

입력 범위 : a ~ z

입력 예시

f

출력 예시

a

b

c

d

e

f

JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		char endChar = scan.next().charAt(0);
		char printValue = 'a';
		do {
			System.out.println(printValue++);
		} while (printValue <= endChar);
	}
}

Swift 4.2

import Foundation

let line = readLine();
if line != nil,let endChar = line!.trimmingCharacters(in: .whitespaces).first {
    var printChar = "a".first!
    repeat {
        print(printChar)
        if let uniChar = printChar.unicodeScalars.first {
            if let nextChar = Unicode.Scalar(uniChar.value + 1) {
                printChar = Character(nextChar)
            }
        }
    } while printChar <= endChar
}

 

문자 하나의 스칼라 계산하는건 정말 싫네요

이렇게 하는게 더 편해! 라고 누군가 알려줬으면 좋겠습니다.

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

반응형

72. 콘솔에서 정수 한개가 입력되었을때 카운트다운을 출력하라

입력 범위 : 1 ~ 100

입력 예시

5

출력 예시

4

3

2

1

​0

JAVA

import java.util.Scanner;

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

swift 4.2

import Foundation

let line = readLine();
if line != nil,var maxCount = Int(line!) {
    while maxCount > 0 {
        maxCount-=1
        print(maxCount)
    }
}

 

이전문제와 다른거는 순서의 차이....

출력을 먼저하느냐 감소를 먼저하느냐 그것이 문제로다

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

반응형

71. 콘솔에서 정수 한개가 입력되었을때 카운트다운을 출력하라

입력 범위 : 1 ~ 100

입력 예시

5

출력 예시

5

4

3

2

1

JAVA

import java.util.Scanner;

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

Swift 4.2

import Foundation

let line = readLine();
if line != nil,var maxCount = Int(line!) {
    while maxCount > 0 {
        print(maxCount)
        maxCount-=1
    }
}

 

JAVA쪽에 print와 감소를 같이 해줬는데

버전 별로 의도대로 안될수도 있습니다.

그냥 밑의 스위프트 처럼 출력과 감소를 줄을 나누는게 더 나을수도 있어요.

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

반응형

70. 콘솔에서 0이 입력 될 때 까지 계속 정수를 입력받고 출력하기

입력 범위 : -2147483648 ~ 2147483647

입력 예시

7 4 2 3 0 1 5 6 9 10 8

출력 예시

7

4

2

3

0

이전 이 문제를 goto문으로 풀라고해서

문제를 집어던지고 while문으로 풀었더니

이번엔 같은문제를 while문으로 풀어보기 문제가 나왔습니다 난감하네요;;;

그래서 이전 문제포스트 링크로 코드를 대신합니다.

https://blog.naver.com/carnelian34/221561892307

 

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

 

[기초-반복실행구조] 0 입력될 때까지 무한 출력하기2(설명)

C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요.  - 모든 내용

codeup.kr

 

반응형

69. 콘솔에서 입력규정에 맞게 정수를 입력받고 출력하라

입력 규정:

1Line에서 정수 한개가 입력된다. ( 1 ~ )

2Line에서 공백을 두고 1Line의 정수의 갯수 만큼 정수가 입력된다.

입력 범위 : -2147483648 ~ 2147483647

입력 예시

5

1 2 3 4 5

출력 예시

1

2

3

4

5

JAVA 

import java.util.Scanner;

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

 

 

Swfit 4.2

import Foundation

let firstLine = readLine()
if firstLine != nil, let count = Int(firstLine!) {
    let secondLine = readLine()
    if secondLine != nil {
        var values = [Int]()
        for sub in secondLine!.split(separator: " ") {
            if let temp = Int(sub) { values.append(temp) }
        }
        if values.count == count {
            for value in values {
                print(value)
            }
        } else {
            print("ERROR : values.count")
        }
    }
}

 

 

 

이번 문제도 저번문제와 마찬가지로 goto문 사용에 대한 문제였습니다만

이를 제맘대로 배열의 갯수를 입력받아 배열만들기로 변경하고 풀었습니다.

이렇게 했더니 이전에 있던 입출력하는 문제랑 별 다르지 않네요;;

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

 

 

반응형

68. 콘솔에서 0이 입력 될 때 까지 계속 정수를 입력받고 출력하기

입력 범위 : -2147483648 ~ 2147483647

입력 예시

7 4 2 3 0 1 5 6 9 10 8

출력 예시

7

4

2

3

0

JAVA

import java.util.Scanner;

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

Swift 4.2

import Foundation

func searchAndPrint(line:String) -> Bool{
    var flag = true //0 이 입력되면 false
    let valueArray = line.split(separator: " ")
    for value in valueArray {
        if let temp = Int(value) {
            print(temp)
            if temp == 0 {
                flag = false
                break;
            }
        }
    }
    return flag //true : 0 값이 존재, false : 0 값이 없음
}

var flag = true //0 이 입력되거나 nil이 입력됬을경우 false
while flag {
    let line = readLine()
    if line != nil {
        flag = searchAndPrint(line: line!)
    } else {
        flag = false
    }
}

이번문제는 스위프트쪽에서 조금 문제가 있습니다.

더 찾아보면 사실 있을지도 모릅니다만 표준 입력장치로 정수입력을 받는 함수가 따로 안보이네요.

readLine()으로는 그냥 입력받는다고 해도 이게 하나만 입력될지 여러개가 동시에 입력될지 모르기에

처리해주는걸 저렇게 해줘봤습니다.break문은 써진곳의 반복문을 탈출하는거에요 나중에 이걸쓰라는 문제자체가 나올거같긴한데

그냥 이야기해봤습니다.

이 글들이 스위프트 입문하시는 분들께 도움이 됐으면 좋겠네요.

한국자료는 그렇게 많이 안보여서;;;

추가 -

원래부터가 c언어 학습용으로 만들어진 문제라 c언어 문법 문제들입니다.

이번은 문제는 goto문 사용에 대한 문제인데

이걸 while문으로 대체했습니다.

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

반응형

67. 콘솔에서 한 개의 정수를 입력받고, 정수에 따른 문자열을 출력하라.

입력 범위 : 1~12

월 : 계절​

12,1,2 : winter

3,4,5 : spring

6,7,8 : summer

9,10,11 : fall

입력 예시

1

출력 예시

winter

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();
		
		switch (value) {
		case 12: case 1: case 2:
			System.out.println("winter");
			break;
		case 3:
		case 4:
		case 5:
			System.out.println("spring");
			break;
		case 6: case 7: case 8:
			System.out.println("summer");
			break;
		case 9: case 10: case 11:
			System.out.println("fall");
			break;
		default:
			System.out.println("what?");
			break;
		}
	}
}

Swift 4.2

import Foundation

let line = readLine()
if line != nil {
    if let value = Int(line!) {
        switch value {
        case 12,1,2: print("winter")
        case 3,4,5: print("spring")
        case 6,7,8: print("summer")
        case 9,10,11: print("fall")
        default : print("what?")
        }
    }
}

이전문제였나, 스위치문에 break;를 넣지않으면 안되요! 라고 한게

사실 저렇게 이어서 동작을 하기에(범위지정 처럼 동작) 그런말을 했었습니다.

추가로

문제에서 JAVA 쪽을

case 3:

case 4:

case 5:

~~솰랴솰랴 break;

라고 써서 할슁ㅆ어염! 라고 써있어서 사실 이건 한줄로 쓰는것과 같다 라는걸 보여주려고 저렇게 해봤습니다

한줄로쓰는게 더 보기좋잖아요?

스위프트에서는 저렇게 하나하나 지정할수 있습니다

스위프트 짱짱!

break는 또 뭐냐 귀찮게 라고 하시는 우리 쿨한 스위프트누님

아 선택 실행구조의 마지막 문제였네요.

오늘은 한가하니 쭉쭉 진도를 나아가서 100제를 빨리 끝내고 다른거 포스팅하고싶네요

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

반응형

+ Recent posts