4153直角三角形、2798ブラックジャック、1436映画監督
Today 12/22
直角三角形(My Code)
ブラックジャック(My Code) if/else文 映画監督
また,常に個数を求めるよりも,一度配列に保存して取り出す方が効率的であるため,配列を利用した.
要するに、1から上がるよりも、早い時間がかかりました.でも草を見ると1から上がったみたい(配列を使用しない)
コアコンセプトは、繰り返し
直角三角形(My Code)
while true {
let input = readLine()!.split(separator: " ").map{Int(String($0))!}.sorted(by: >)
if input == [0,0,0] { break }
if input[0]*input[0] == (input[1]*input[1]) + (input[2]*input[2]) {
print("right")
} else {
print("wrong")
}
}
平方を求める時はpow(value, Int)
,平方根を求める時はsqrt(value)
.while let input = readLine(), input != "0 0 0" {
let line = input.split(separator: " ").map{Double(String($0))!}.sorted(by: >)
let output = pow(line[0], 2) == pow(line[1], 2) + pow(line[2], 2) ? "right" : "wrong"
print(output)
}
昨日学んだ部分を利用して、whileの角度から濾過して、その毒性をもっと良くします.ブラックジャック(My Code)
let NM = readLine()!.split(separator: " ").map{Int(String($0))!}
let input = readLine()!.split(separator: " ").map{Int(String($0))!}.sorted(by: <)
var output = 0
for one in 0...NM[0]-3 {
for two in 1...NM[0]-2 {
if two <= one { continue }
for three in 2...NM[0]-1 {
if three <= two { continue }
let result = input[one] + input[two] + input[three]
if result <= NM[1] {
if result > output {
output = result
}
} else { break }
}
}
}
print(output)
同じカードの重複選択を防ぐために、if two <= one { continue }
のように処理するのは、ちょっと馬鹿げています.let NM = readLine()!.split(separator: " ").map{Int(String($0))!}
let input = readLine()!.split(separator: " ").map{Int(String($0))!}.sorted(by: <)
var output = 0
for one in 0...NM[0]-3 {
for two in **one**+1...NM[0]-2 {
for three in **two**+1...NM[0]-1 {
let sumOfCards = input[one] + input[two] + input[three]
if sumOfCards <= NM[1] {
output = max(sumOfCards, output)
}
}
}
}
print(output)
グーグル学習の過程で、学ぶべきことをたくさん運用しました.for two in one+1...NM[0]-2
for文は、1、2、3つの変数を使用して作成されます.sumOfCards
のように、わかりやすい変数名が作成されます.output = max(sumOfCards, output)
ではありません.let input = Int(readLine()!)!
var seriesArr: [String] = []
for index in 0...3000 {
let indexArr = String(index).map{String($0)}
if indexArr.last == "6" {
if indexArr.count >= 2, indexArr[indexArr.count-2] == "6" {
if indexArr.count >= 3, indexArr[indexArr.count-3] == "6" {
// 666 일 때
if indexArr.count == 3 {
for sixHunSixtySix in 0...999 {
if sixHunSixtySix < 10 {
seriesArr.append("66600"+String(sixHunSixtySix))
} else if sixHunSixtySix >= 10, sixHunSixtySix < 100 {
seriesArr.append("6660"+String(sixHunSixtySix))
} else if sixHunSixtySix >= 100 {
seriesArr.append("666"+String(sixHunSixtySix))
}
}
} else if indexArr.count == 4 {
for sixHunSixtySix in 0...999 {
if sixHunSixtySix < 10 {
seriesArr.append(indexArr[0]+"66600"+String(sixHunSixtySix))
} else if sixHunSixtySix >= 10, sixHunSixtySix < 100 {
seriesArr.append(indexArr[0]+"6660"+String(sixHunSixtySix))
} else if sixHunSixtySix >= 100 {
seriesArr.append(indexArr[0]+"666"+String(sixHunSixtySix))
}
}
}
} else {
// 66일 때
if indexArr.count == 2 {
for sixtySix in 0...99 {
if sixtySix < 10 {
seriesArr.append("6660"+String(sixtySix))
} else {
seriesArr.append("666"+String(sixtySix))
}
}
} else if indexArr.count == 3 {
for sixtySix in 0...99 {
if sixtySix < 10 {
seriesArr.append(indexArr[0]+"6660"+String(sixtySix))
} else {
seriesArr.append(indexArr[0]+"666"+String(sixtySix))
}
}
} else if indexArr.count == 4 {
for sixtySix in 0...99 {
if sixtySix < 10 {
seriesArr.append(indexArr[0]+indexArr[1]+"6660"+String(sixtySix))
} else {
seriesArr.append(indexArr[0]+indexArr[1]+"666"+String(sixtySix))
}
}
}
}
} else {
// 6일 때
if indexArr.count == 1 {
for six in 0...9 {
seriesArr.append("666"+String(six))
}
} else if indexArr.count == 2 {
for six in 0...9 {
seriesArr.append(indexArr[0]+"666"+String(six))
}
} else if indexArr.count == 3 {
for six in 0...9 {
seriesArr.append(indexArr[0]+indexArr[1]+"666"+String(six))
}
} else if indexArr.count == 4 {
for six in 0...9 {
seriesArr.append(indexArr[0]+indexArr[1]+indexArr[2]+"666"+String(six))
}
}
}
} else {
seriesArr.append(String(index)+"666")
}
}
seriesArr[0] = "666"
print(seriesArr[input-1])
1から1つずつ上がっていくのは話にならないようなので、369ゲームのように、6のとき、66のとき、666のときに分けて、いくつかのシリーズのタイトルに何の数字があるのか推測します.また,常に個数を求めるよりも,一度配列に保存して取り出す方が効率的であるため,配列を利用した.
要するに、1から上がるよりも、早い時間がかかりました.でも草を見ると1から上がったみたい(配列を使用しない)
let input = Int(readLine()!)!
var number = 666
var count = 0
while true {
var sixCount = 0
var numberInstance = number
while numberInstance != 0 {
if numberInstance % 10 == 6 {
sixCount += 1
} else {
sixCount = 0
}
if sixCount == 3 {
count += 1
break
}
numberInstance /= 10
}
if count == input {
print(number)
break
}
number += 1
}
だから解き直したコアコンセプトは、繰り返し
Int number % 10, number / 10
count検索連続の6である.Reference
この問題について(4153直角三角形、2798ブラックジャック、1436映画監督), 我々は、より多くの情報をここで見つけました https://velog.io/@seosieve/4153-직각삼각형-2798-블랙잭-1436-영화감독-숌テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol