競技プログラミングメモ(その1)
メモ
そもそも標準出力をどうするのか全然わからない
どうやってデバックすれば良いんだ・・・
テスト
標準出力]
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
}
}
}
}
Author And Source
この問題について(競技プログラミングメモ(その1)), 我々は、より多くの情報をここで見つけました https://qiita.com/nakagawa1017/items/b73ccd2c9862f037473e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .