๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿž Daily Loaf/์•Œ๊ณ ๋ฆฌ์ฆ˜

[๋ธŒ๋ก ์ฆˆ5][Swift]๋ฐฑ์ค€10951(while/EOF)

by BreadDev 2024. 10. 4.
728x90

https://www.acmicpc.net/problem/10951

 

๋‹ต์•ˆ์ฝ”๋“œ

while let input = readLine() {
    let numbers = input.split(separator: " ").map { Int($0)! }
    print(numbers[0] + numbers[1])
}
  • while let ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ readLine()์˜ ๊ฒฐ๊ณผ๋ฅผ ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ž…๋ ฅ์ด ์žˆ๋Š” ๋™์•ˆ ๊ณ„์†ํ•ด์„œ ๋ฃจํ”„๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ ๋ฐ˜๋ณต์—์„œ:
    • ์ž…๋ ฅ ๋ฌธ์ž์—ด์„ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    • ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž์™€ ๋‘ ๋ฒˆ์งธ ์ˆซ์ž์˜ ํ•ฉ์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ž…๋ ฅ์ด ๋” ์ด์ƒ ์—†์œผ๋ฉด (EOF์— ๋„๋‹ฌํ•˜๋ฉด) ๋ฃจํ”„๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
input = readLine()! ์ด๋ ‡๊ฒŒ ์ฝ”๋“œ๋ฅผ ์•ˆ ์ ์€ ์ด์œ 
  • ์•ˆ์ „์„ฑ:
    • readLine()์€ ์˜ต์…”๋„ String์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ž…๋ ฅ์ด ์—†์œผ๋ฉด nil์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    • readLine()!์ฒ˜๋Ÿผ ๊ฐ•์ œ ์–ธ๋ž˜ํ•‘์„ ์‚ฌ์šฉํ•˜๋ฉด, ์ž…๋ ฅ์ด ์—†์„ ๋•Œ (์ฆ‰, EOF์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ) ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  • EOF ์ฒ˜๋ฆฌ:
    • while let input = readLine()์€ ์ž…๋ ฅ์ด ์žˆ์„ ๋•Œ๋งŒ ๋ฃจํ”„๋ฅผ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค.
    • ์ž…๋ ฅ์ด ๋๋‚˜๋ฉด(EOF์— ๋„๋‹ฌํ•˜๋ฉด) readLine()์€ nil์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๋ฃจํ”„๊ฐ€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
  • ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ:
    • while let ๊ตฌ๋ฌธ์€ ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ž…๋ ฅ์ด ์žˆ์„ ๋•Œ๋งŒ input ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•˜๊ณ  ๋ฃจํ”„๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.