プログラマ-ソート
25033 ワード
に感銘を与える
この探索を学んだ後、ソート問題を解いた.
アレイを事前にソートすることで、
問題の与えられた条件を考慮する必要がないような状況になったようだ.
K番目の数
この探索を学んだ後、ソート問題を解いた.
アレイを事前にソートすることで、
問題の与えられた条件を考慮する必要がないような状況になったようだ.
K番目の数
配列分割[1.2]
最後のインデックスendIndex、最初のインデックスstartIndex(1から)
import Foundation
func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] {
return commands.map({(key) in
return array[(key[0]-1)...(key[1]-1)].sorted()[key[2]-1]
})
}
import Foundation
func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] {
let testCase: Int = commands.count
var mutableArray:[Int] = array
var answer: [Int] = []
for i in 0 ... testCase-1 {
let first = commands[i][0]
let second = commands[i][1]
let index = commands[i][2]
let newArray = mutableArray[first-1...second-1].sorted()
let answerValue = newArray[index-1]
answer.append(answerValue)
}
return answer
}
大数
https://caution-dev.tistory.com/4
https://tngusmiso.tistory.com/25 // +로 문자열 결합해보기
print("a"+"b") //ab
let a = 123
print("\(123)"+"b") //123b
// 스트링으로 변환해서 610, 106을 생성한 후 내림차순으로 정렬하기
let sorted = numbers.sorted {"\($0)\($1)" > "\($1)\($0)"} //[6, 2, 10]
// 첫번째가 0인 경우는 [0, 0] 뭐 이런 경우이고, "00"이 아니라 "0"을 리턴해야한다
if sorted[0] == 0 {
return "0"
}
return sorted.reduce("") { $0 + "\($1)" } // 스트링으로 출력하기
//let b = sorted.map{String($0)}.joined() //상동
H-Index
大数を基準にすれば降順で先にソートできると思いますが、それは思いもよらなかったと思います.
https://kocensd.github.io/プログラマー-H-Index(SWIFT)/
https://mungto.tistory.com/27
func solution(_ citations:[Int]) -> Int {
let n = citations.count //n편
let sortedCitations = citations.sorted(by: >)
for (i, element) in sortedCitations.enumerated() {
if i >= element {
return i
}
}
// 인용횟수가 논문개수보다 많은 경우 [10, 50, 100]
return citations.count
}
かんすうしきプログラミング
https://velog.io/@msi 753/関数-プログラミング-切り替え
https://velog.io/@msi 753/関数-プログラミング-2-切り替え
https://velog.io/@msi 753/関数-プログラミング-3マッピング-フィルタ-リフレッシュ-切り替え
https://velog.io/@msi 753/関数-プログラミング-4-モナド-切り替え
わあ、文法しか勉强していないと、本当に全然覚えていません.😅
それは言わないわけにはいかない.😂
コードテストに役立つものを整理します。
エンクロージャのサムネイル
コンテキストタイプの類推
let reversed: [String] = names.sorted() { (first, second) in
return first > second
}
ショートカットパラメータ名
let reversed: [String] = names.sorted() {
return $0 > $1
}
💥 暗黙的な戻り表示(単行)
let reversed: [String] = names.sorted() { $0 > $1 }
演算子関数(>)
関数名>
public func > <T: Comparable>(lhs: T, rhs: T) -> Bool
let reversed: [String] = names.sorted(by: >)
地図
//후행 클로저 사용
doubledNumbers = numbers.map { $0 * 2 }
let evenNumber: [Int] = [0, 2, 4, 6, 8]
let oddNumber: [Int] = [1, 3, 5, 7, 9]
let multiplyTwo: (Int) -> Int = { $0 * 2}
let doubledEvenNumber = evenNumber.map(multiplyTwo)
let doubledOddNumber = oddNumber.map(multiplyTwo)
へいぶん
マージCombine
草の値段をつける.let numbers: [Int] = [1, 2, 3, 4, 5, 6, 7]
var result: Int = numbers.filter { $0.isMultiple(of: 2) }.map{ $0 * 3 }.reduce(0) { $0 + $1 }
print(result) //36
var array = [1,2,3,4]
array.reduce(0, +) // 숫자 합이 나타남. 문자열 합치기도 가능
map, joined
フィルタ
forEach
Reference
この問題について(プログラマ-ソート), 我々は、より多くの情報をここで見つけました
https://velog.io/@msi753/프로그래머스-정렬
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import Foundation
func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] {
return commands.map({(key) in
return array[(key[0]-1)...(key[1]-1)].sorted()[key[2]-1]
})
}
import Foundation
func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] {
let testCase: Int = commands.count
var mutableArray:[Int] = array
var answer: [Int] = []
for i in 0 ... testCase-1 {
let first = commands[i][0]
let second = commands[i][1]
let index = commands[i][2]
let newArray = mutableArray[first-1...second-1].sorted()
let answerValue = newArray[index-1]
answer.append(answerValue)
}
return answer
}
https://caution-dev.tistory.com/4
https://tngusmiso.tistory.com/25
// +로 문자열 결합해보기
print("a"+"b") //ab
let a = 123
print("\(123)"+"b") //123b
// 스트링으로 변환해서 610, 106을 생성한 후 내림차순으로 정렬하기
let sorted = numbers.sorted {"\($0)\($1)" > "\($1)\($0)"} //[6, 2, 10]
// 첫번째가 0인 경우는 [0, 0] 뭐 이런 경우이고, "00"이 아니라 "0"을 리턴해야한다
if sorted[0] == 0 {
return "0"
}
return sorted.reduce("") { $0 + "\($1)" } // 스트링으로 출력하기
//let b = sorted.map{String($0)}.joined() //상동
H-Index
大数を基準にすれば降順で先にソートできると思いますが、それは思いもよらなかったと思います.
https://kocensd.github.io/プログラマー-H-Index(SWIFT)/
https://mungto.tistory.com/27
func solution(_ citations:[Int]) -> Int {
let n = citations.count //n편
let sortedCitations = citations.sorted(by: >)
for (i, element) in sortedCitations.enumerated() {
if i >= element {
return i
}
}
// 인용횟수가 논문개수보다 많은 경우 [10, 50, 100]
return citations.count
}
かんすうしきプログラミング
https://velog.io/@msi 753/関数-プログラミング-切り替え
https://velog.io/@msi 753/関数-プログラミング-2-切り替え
https://velog.io/@msi 753/関数-プログラミング-3マッピング-フィルタ-リフレッシュ-切り替え
https://velog.io/@msi 753/関数-プログラミング-4-モナド-切り替え
わあ、文法しか勉强していないと、本当に全然覚えていません.😅
それは言わないわけにはいかない.😂
コードテストに役立つものを整理します。
エンクロージャのサムネイル
コンテキストタイプの類推
let reversed: [String] = names.sorted() { (first, second) in
return first > second
}
ショートカットパラメータ名
let reversed: [String] = names.sorted() {
return $0 > $1
}
💥 暗黙的な戻り表示(単行)
let reversed: [String] = names.sorted() { $0 > $1 }
演算子関数(>)
関数名>
public func > <T: Comparable>(lhs: T, rhs: T) -> Bool
let reversed: [String] = names.sorted(by: >)
地図
//후행 클로저 사용
doubledNumbers = numbers.map { $0 * 2 }
let evenNumber: [Int] = [0, 2, 4, 6, 8]
let oddNumber: [Int] = [1, 3, 5, 7, 9]
let multiplyTwo: (Int) -> Int = { $0 * 2}
let doubledEvenNumber = evenNumber.map(multiplyTwo)
let doubledOddNumber = oddNumber.map(multiplyTwo)
へいぶん
マージCombine
草の値段をつける.let numbers: [Int] = [1, 2, 3, 4, 5, 6, 7]
var result: Int = numbers.filter { $0.isMultiple(of: 2) }.map{ $0 * 3 }.reduce(0) { $0 + $1 }
print(result) //36
var array = [1,2,3,4]
array.reduce(0, +) // 숫자 합이 나타남. 문자열 합치기도 가능
map, joined
フィルタ
forEach
Reference
この問題について(プログラマ-ソート), 我々は、より多くの情報をここで見つけました
https://velog.io/@msi753/프로그래머스-정렬
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
func solution(_ citations:[Int]) -> Int {
let n = citations.count //n편
let sortedCitations = citations.sorted(by: >)
for (i, element) in sortedCitations.enumerated() {
if i >= element {
return i
}
}
// 인용횟수가 논문개수보다 많은 경우 [10, 50, 100]
return citations.count
}
https://velog.io/@msi 753/関数-プログラミング-切り替え
https://velog.io/@msi 753/関数-プログラミング-2-切り替え
https://velog.io/@msi 753/関数-プログラミング-3マッピング-フィルタ-リフレッシュ-切り替え
https://velog.io/@msi 753/関数-プログラミング-4-モナド-切り替え
わあ、文法しか勉强していないと、本当に全然覚えていません.😅
それは言わないわけにはいかない.😂
コードテストに役立つものを整理します。
エンクロージャのサムネイル
コンテキストタイプの類推
let reversed: [String] = names.sorted() { (first, second) in
return first > second
}
ショートカットパラメータ名
let reversed: [String] = names.sorted() {
return $0 > $1
}
💥 暗黙的な戻り表示(単行)
let reversed: [String] = names.sorted() { $0 > $1 }
演算子関数(>)
関数名
>
public func > <T: Comparable>(lhs: T, rhs: T) -> Bool
let reversed: [String] = names.sorted(by: >)
地図
//후행 클로저 사용
doubledNumbers = numbers.map { $0 * 2 }
let evenNumber: [Int] = [0, 2, 4, 6, 8]
let oddNumber: [Int] = [1, 3, 5, 7, 9]
let multiplyTwo: (Int) -> Int = { $0 * 2}
let doubledEvenNumber = evenNumber.map(multiplyTwo)
let doubledOddNumber = oddNumber.map(multiplyTwo)
へいぶん
マージCombine
草の値段をつける.
let numbers: [Int] = [1, 2, 3, 4, 5, 6, 7]
var result: Int = numbers.filter { $0.isMultiple(of: 2) }.map{ $0 * 3 }.reduce(0) { $0 + $1 }
print(result) //36
var array = [1,2,3,4]
array.reduce(0, +) // 숫자 합이 나타남. 문자열 합치기도 가능
map, joined
フィルタ
forEach
Reference
この問題について(プログラマ-ソート), 我々は、より多くの情報をここで見つけました https://velog.io/@msi753/프로그래머스-정렬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol