Today I Learned

20210831 백준 swift - while문

돌맹이시터 2021. 9. 1. 02:54

1~3단계 10952, 10951, 1110 문제풀이

 

 

 

10952 A+B -5

 

var escape : Bool = true
while escape != false {
	var input = readLine()!.split(separator: " ").map{Int($0)!}
	if input != [0, 0] {
		print(input[0]+input[1])
		escape = true
	} else {
		escape = false
	}
}

 

이렇게 풀었는데..

코드를 좀 더 간결하게 작성하는 방법이 있었다.

 

 

while true {
    let number = readLine()!.split(separator: " ").map { Int($0)! }
    if number[0] + number[1] == 0 {
        break
    }
    print(number[0]+number[1])
}

 

나는 escape를 위해 변수를 하나 만들어서 사용했는데,

그냥 while true로 바로 코드블럭을 만들면 되는 것이었다.

 

 

 

 

10951 A+B -4

 

 

이 문제에서는 테스트케이스가 언제 끝나는지 명시되어있지 않아서

while true로 코드를 제출하니 런타임 에러가 나왔다.

EOF를 체크해서 코드를 작성하면 된다.

 

while let input=readLine() {
	var num = input.split(separator: " ").map{Int($0)!}
	print(num[0]+num[1])
}

 

위처럼 input = readLine()를 달아주는 게 readLine이 있는지 아닌지를 판단하는 것 같다.

코드를 실행했을 때 EOF를 넘겨주는(?) 커맨드는 컨트롤+d를 누르면 된다.

 

 

 

 

 

1110 더하기 사이클

 

 

let input = Int(readLine()!)!
var a = input / 10
var b = input % 10
var i = 0
while true {
	let sum = a + b 
	let result = b * 10 + sum % 10

	a = result / 10
	b = sum % 10
	i += 1

	if result == input {
		break
	} 
}
print(i)