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)