ํญ์ ํ์ด์ฌ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ค๊ฐ Swift๋ก ์๋ํด๋ณด๋ คํ๋ค. ์
๋ ฅ๊ฐ ๋ฐ๋ ํจ์๋ถํฐ ์ฌ์ฉํด๋ณด์ง ์์์ ... ์ผ๋จ์ ์ด๊ฒ๋ถํฐ
์ฌ์ฉ์๋ก๋ถํฐ ๊ฐ ์
๋ ฅ๋ฐ๊ธฐ
#1. Command line Tool : ์
๋ ฅ๊ฐ์ ๋ฐ๊ธฐ ์ํ ํ๊ฒฝ
ํ๋ ์ด๊ทธ๋ผ์ด๋์์๋ ์ฌ์ฉ์์ ๊ฐ์ ์
๋ ฅ๋ฐ์ ์ ์๊ธฐ ๋๋ฌธ์ ์ ๊ทธ๋ฆผ์ฒ๋ผ Command line Tool๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํด์ฃผ์ด์ผ ํ๋ค.
#2. readLine() : ์
๋ ฅ๊ฐ ๋ฐ๊ธฐ
ํ๋ก์ ํธ๋ฅผ ์์ฑํ์ผ๋ฉด readLine() ๋ฉ์๋๋ฅผ ํตํด ์ฌ์ฉ์ ๊ฐ์ ์ฝ์ ์ ์๋ค.
let input = readLine()!
๋ฐํํ์ Optional<String>
์ด๋ค. ๋ฐ๋ผ์ !
๋ฅผ ํตํด์ ๊ฐ์ unwrapping์ ํด์ฃผ์ด์ผํ๋ค. (์ด์ฐจํผ ๋ฐฑ์ค์์๋ ๋ฐ๋์ ์
๋ ฅ๊ฐ์ด ์๊ธฐ ๋๋ฌธ์)
#3. split() : ๊ฐ ์ชผ๊ฐ๊ธฐ
์
๋ ฅ๊ฐ์ด ํ๋์ ์ค์ ์ฌ๋ฌ๊ฐ์ ๊ฐ์ด ๊ณต๋ฐฑ๋ฑ์ ๊ตฌ๋ถ์๋ฅผ ๋๊ณ ๋ค์ด์ค๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์๋ฅผ๋ค์ด 1 5 3 2 3 5
๋ผ๋ ์
๋ ฅ๊ฐ์ด ๋ค์ด์จ๋ค๋ฉด ๊ตฌ๋ถ์๋ ๊ณต๋ฐฑ์ด๋๋ค.
let input = readLine()!.split(separator: " ")
์ด๋ ๊ฒ ๋ฐ์์ฃผ๊ฒ ๋๋ฉด, input์ type์ ๋ฐฐ์ด์ด๋๋ค. (Array)
#4. Map()
#3 ์์ ์ฌ๋ฌ๊ฐ์ ๊ฐ์ ๋ฐ์์ค๊ฒ ๋๋ฉด Arrayํ์
์ด ๋๋ค. ํ์ง๋ง ์ฐ์ฐ๋ฑ์ ํ๊ธฐ ์ํด์๋ ์ซ์ ์๋ฃํ์ด ํ์ํ๋ฐ, ์ด๋๋ map(_:)
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ Int๋ Doubleํ๊ณผ ๊ฐ์ด ํ์
์ ๋ฐ๊ฟ์ค ์ ์๋ค.
let cast = ["Vivien", "Marlon", "Kim", "Karl"]
let lowercaseNames = cast.map { $0.lowercased() }
// 'lowercaseNames' == ["vivien", "marlon", "kim", "karl"]
let letterCounts = cast.map { $0.count }
// 'letterCounts' == [6, 6, 3, 4]
map(_:)
ํจ์๋ ๊ฐ ์์์ ์ ๊ทผํ์ฌ ์ฃผ์ด์ง ํด๋ก์ ธ์ ๋์์ ์ ์ฉ์์ผ์ฃผ๊ฒ ๋๋ค.
๋ฐ๋ผ์ 1 2 4 5 3 6
๋ผ๋ ์
๋ ฅ๊ฐ์ด ์์๋ , ์ซ์ํ ๋ฐฐ์ด๋ก ์ ์ฅํ๋ ค๋ฉด ๋ค์์ฒ๋ผ ํ๋ฉด ๋๋ค.
let inputArray = readLine()!.split(separator: " ").map{Int($0)!}