LoginSignup
0
0

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-06-02

メモ

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

テスト

標準出力]

7 1 3 6 7

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

テスト2

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] [".", "#", ".", ".", "#", ".", "."]

造りかけのコード

どうすればよかったのかさっぱりわからない・・・・

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("2ステップは動けます")
                        sunuke = sunuke + 2
                        //もしどちらもゴールに辿り着いたら
                        if sunuke == C && funuke == D {
                            print("Yes")
                        }
                    case false:
                        print("2ステップめもうごけませんでした")
                        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("2ステップは動けます")
                        funuke = funuke + 2
                        //もしどちらもゴールに辿り着いたら
                        if sunuke == C && funuke == D {
                            print("Yes")
                        }
                    case false:
                        print("2ステップめもうごけませんでした")
                        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("2ステップは動けます")
                        funuke = funuke + 2
                        //もしどちらもゴールに辿り着いたら
                        if sunuke == C && funuke == D {
                            print("Yes")
                        }
                    case false:
                        print("2ステップめもうごけませんでした")
                        break
                }
        }
    }
}





0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0