Swift 문법 예시

[iOS / Swift] 101. Input

Minny27 2022. 1. 17. 17:38

101. Input

한 줄

  • 정수 하나 입력받을 때

      let number = Int(readLine()!)!
  • 문자열 한 줄 입력받을 때

      let string = readLine()!
  • n개의 줄, 정수 하나씩 입력받을 때

      let n = Int(readLine()!)!
      var intArray = [Int]()
    
      for i in 0 ..< n {
          let value = Int(readLine()!)!
          intArray.append(value)
      }
    
      또는
    
      let n = Int(readLine()!)!
      var intArray = [Int](repeating: 0, count: n)
    
      for i in 0 ..< n {
          let value = Int(readLine()!)!
          intArray[i] = value
      }
    
      또는
    
      let n = Int(readLine()!)!
      var intArray =  (0 ..< n).compactMap { _ in Int(readLine()!) }

띄어쓰기

  • 정수

      let numberArray = readLine()!.split(separator: " ").map { Int(String($0))! }
    
      또는
    
      import Foundation
      let numberArray = readLine()!.components(separatedBy: " ").map { Int(String($0))! }
      /* Int(String($0))! 로 쓰는 이유는 Int($0)! 보다 속도가 더 빠르기 때문 */
  • 문자열

      /* Array<Substring> 타입 */
      let stringArray = readLine()!.split(separator: " ")
    
      또는
    
      /* Array<String> 타입 */
      import Foundation
      let stringArray = readLine()!.components(separatedBy: " ")

2차원 배열

  • 띄어쓰기, 정수

      var numberArray = [[Int]]()
      for _ in 0..<3 {
          let line = readLine()!.split(separator: " ").map { Int($0)! }
          numberArray.append(line)
      }
  • 띄어쓰기, 문자열

      var stringArray = [[String]]()
      for _ in 0..<3 {
          let line = readLine()!.split(separator: " ").map { String($0) }
          stringArray.append(line)
      }
  • 띄어쓰기 x, 1차원 문자열 -> 2차원 정수

      let stringArray = ["010", "0001", "0101"]
      var array = [[Int]]()
      for string in stringArray {
          var line = [Int]()
          for char in string {
              line.append(Int(String(char))!)
          }
          array.append(line)
      }
    
      또는
    
      for string in stringArray {
          let line = Array(string).map { Int(String($0))! }
          array.append(line)
      }
    
      또는
    
      stringArray.forEach {
          let line = Array($0).map { Int(String($0))! }
          array.append(line)
      }
  • 띄어쓰기 x, 1차원 문자열 -> 2차원 문자열

      let stringArray = ["Hi", "there", "bye!"]
      var array = [[String]]()
      for string in stringArray {
          var line = [String]()
          for char in string {
              line.append(String(char))
          }
          array.append(line)
      }
    
      또는
    
      for string in stringArray {
          let line = Array(string).map { String($0) }
          array.append(line)
      }
    
      또는
    
      stringArray.forEach {
          let line = Array($0).map { String($0) }
          array.append(line)
      }

Graph(Node) 생성

  • 두 노드의 연결을 띄어쓰기로 주어졌을 때

      /* 양방향 기준 */
      let n = Int(readLine()!)!
      var g = Array(repeating: [Int](), count: n + 1)
    
      for _ in 0..<n! {
          let adj = readLine()!.split(separator: " ").map{Int($0)!}
          g[adj[0]].append(adj[1])
          g[adj[1]].append(adj[0])
      }

'Swift 문법 예시' 카테고리의 다른 글

[iOS / Swift] 106. Set  (0) 2022.01.17
[iOS / Swift] 105. Array  (0) 2022.01.17
[iOS / Swift] 104. Strings  (0) 2022.01.17
[iOS / Swift] 103. Loops  (0) 2022.01.17
[iOS / Swift] 102. Output  (0) 2022.01.17