競技プログラミングメモ(その１)

# メモ
そもそも標準出力をどうするのか全然わからない
どうやってデバックすれば良いんだ・・・

## テスト
標準出力]
```
7 1 3 6 7
```

```Swift
let arr=readLine()!.characters.split{$0==" "}.map{Int(String($0))!}
let a=arr[0]
let b=arr[1]
print(a,b)
```

```
7 1
```

## テスト２
```
7 1 3 6 7
.#..#..
```

```
let arr=readLine()!.characters.split{$0==" "}.map{Int(String($0))!}
let arr2=readLine()!.characters.map{$0}
let a=arr[0]
let b=arr[1]
print(arr,arr2)
```

```
[7, 1, 3, 6, 7] [".", "#", ".", ".", "#", ".", "."]
```



## 造りかけのコード
どうすればよかったのかさっぱりわからない・・・・

```Swift
let arr=readLine()!.characters.split{$0==" "}.map{Int(String($0))!}
let Street=readLine()!.characters.map{$0}
let N=arr[0]
let A=arr[1]
let B=arr[2]
let C=arr[3]//すぬけのゴール
let D=arr[4]//ふぬけのゴール
var sunuke:Int = A - 1
var funuke:Int = B - 1

func isOneStep(people1:Int, people2:Int) -> Bool {
  	guard people1 != people2 else {
    	return false
    }
  
	if Street[people1+1] == "." {
		print("進めます")
  		return true
	} else if Street[people1+1] == "#"{
		print("岩です")
  		return false
	} else {
		print("なんかへんです")
  		return false
	}
}

func isTwoStep(people1:Int, people2:Int) -> Bool {
  	guard people1+2 != people2 else {
      	print("ぶつかります")
    	return false
	}
	if Street[people1+2] == "." {
		print("進めます")
  		return true
	} else if Street[people1+2] == "#"{
		print("岩です")
  		return false
	} else {
		print("なんか変です")
  		return false
	}
}

while C - sunuke > 0 && D - funuke > 0 {
  	//もしsunukeのほうがゴールより遠ければ
	if C - sunuke > D - funuke {
      	print("/////すぬけのたーん/////")
      	switch isTwoStep(sunuke,people2:funuke) {
			case true:
          		print("trueでした")
          		sunuke = sunuke + 1
          		//もしどちらもゴールに辿り着いたら
          		if sunuke == C && funuke == D {
                	print("Yes")
                }
         		break
        	case false:
          		print("falseでした　一ステップきりかえ")
          		switch isOneStep(sunuke,people2:funuke) {
                	case true:
                  		print("２ステップは動けます")
                  		sunuke = sunuke + 2
                  		//もしどちらもゴールに辿り着いたら
                  		if sunuke == C && funuke == D {
                			print("Yes")
                		}
                  	case false:
                  		print("２ステップめもうごけませんでした")
                  		break
                }
        }
      print("/////すぬけのたーんおわり/////")
      print("/////ふぬけのたーん/////")
      	switch isTwoStep(funuke,people2:sunuke) {
			case true:
          		print("trueでした")
          		funuke = funuke + 1
          		//もしどちらもゴールに辿り着いたら
                if sunuke == C && funuke == D {
                	print("Yes")
                }
         		break
        	case false:
          		print("falseでした　一ステップきりかえ")
          		switch isOneStep(funuke,people2:sunuke) {
                	case true:
                  		print("２ステップは動けます")
                  		funuke = funuke + 2
                  		//もしどちらもゴールに辿り着いたら
                		if sunuke == C && funuke == D {
                			print("Yes")
                		}
                  	case false:
                  		print("２ステップめもうごけませんでした")
                  		break
                }
        }
      print("/////ふぬけのたーんおわり/////")
    }
  
  	if D - funuke > C - sunuke {
      	print("/////ふぬけのたーん/////")
      	switch isTwoStep(funuke,people2:sunuke) {
			case true:
          		print("trueでした")
          		funuke = funuke + 1
          		//もしどちらもゴールに辿り着いたら
                if sunuke == C && funuke == D {
                	print("Yes")
                }
         		break
        	case false:
          		print("falseでした　一ステップきりかえ")
          		switch isTwoStep(funuke,people2:sunuke) {
                	case true:
                  		print("２ステップは動けます")
                  		funuke = funuke + 2
                  		//もしどちらもゴールに辿り着いたら
                		if sunuke == C && funuke == D {
                			print("Yes")
                		}
                  	case false:
                  		print("２ステップめもうごけませんでした")
                  		break
                }
        }
    }
}





```