Swift

【Swift】LeetCodeの薦め|コーディングテスト・競プロからの学び

この記事の目的

就職活動や転職活動で必要とされるコーディングテスト.

私は,勉強・頭の体操を兼ねて日頃から定期的にコーディングテストを解いています!
そこでコーディングテストで必要とされる文法やコードなどをまとめていきます.

忘れたとき,ふと思い出したときに見に来てくれると嬉しいです!

LeetCodeとは

はじめに|公式リンク情報&Swiftの薦め

LeetCodeとは無料(一部問題は有料・Premium会員あり)で.コーディングテストの問題を解くことができます!
Google,Amazon,Meta,Apple,MicrosoftといったGAFAMや,Adobe,LinkedIn,Uberといった企業まで外資企業の対策問題もまとめられています!
外資企業を目指す方にはもってこいのコーディングテスト対策・勉強サイトになります.

また多くの問題が無料で公開されているため,とりあえず無料会員で問題なしです.
問題を解き尽くした場合や本格的にGAFAM対策行いたい場合と,必要となれば月額課金($35/month)を利用でOKです!(年契約で$13.25/month)

公式リンクはこちら→→ https://leetcode.com/

LeetCodeは,Python.C++,JavaScript,Go,Rubyなど様々な言語で問題を解くことができます
ちなみに私はアプリ開発の勉強も込めてSwiftで解いています笑
各言語の回答集も様々な方が書いたコードを見ることができるので,勉強にはもってこいです!言語によって,偏りがありますが…

解いた問題一覧

LeetCode上には様々な問題が用意されています.
最初にどの問題から解けばいいのか洗濯するのが難しいと思いますが,
とりあえずLeetCode75と公式サイトがまとめてくれているものを解くと良いと思います!
→→ https://leetcode.com/studyplan/leetcode-75/

私も実際にこちらの問題を進めています.下記に自分の進捗情報も載せていくので,ぜひ皆さんの進捗状況も教えて下さい!
お互いに頑張っていきましょう!!

解いた問題

LeetCode 75

Array / String
  • Merge Strings Alternately
Two Pointers
  • Move Zeroes

Xcode上でコーディングテスト対策

Simulatorを起動させずに実行する

Xcode上でコーディングテストを練習するには??
LeetCodeといったコーディング対策サイトでは,サイト上で入力できますが
補完機能が不足していて使いづらい
ということがあると思います.

そこで私は,Xcode上でプログラムを作成→LeetCodeに貼り付けて実行
という形で使用しています.

では,Xcode上でSimulatorを起動させずにファイルだけを実行する方法は?

プロジェクトを作成する際に,Command Line Toolを使用することで,Swiftファイルのみの実行環境を作ることができます!

Command Line Toolで作成したプロジェクトの使い方

Command Line Toolで作成したプロジェクトで新規ファイルを作成した場合はどのようにすればよいのか?

それは,
①新規ファイル内で関数を作成し,その関数内に記述する
②main.swift内でその関数を呼び出す

といった使い方をすることができます.

// main.swift ファイル内
import Foundation

print("Hello, World!")
newfilefunction()

// =================================
// newfile.swift ファイル内
func newfilefunction(){
    print("hogegege")
}

LeetCodeからの学び

Swiftの入力

関数の引数

Swiftの関数はどのような形になっているのか..

func greet(person name: String) {
    print("Hello, \(name)!")
}

greet(person: "John")

このように関数には,関数名(引数ラベル パラメータ名: 型)
という形になります.

引数ラベルとパラメータの違いですが,
簡単に言うと,引数ラベルは呼び出すとき,パラメータ名は関数内で使用となります.

以下のコードと比較することでわかりやすくなると思います!
引数ラベルを_を用いて省略したversionです.

func greet(_ name: String) {
    print("Hello, \(name)!")
}

greet("John")

返り値がある場合は,

func greet(_ name: String) -> String {
    return "Hello, \(name)!"
}

let greetContent = greet("John")
print(greetContent)

のように返り値の型を書いてあげたらOKです!

ちなみにいずれも出力は,Hello, John! となります.

他の項目

随時追加していきます!

comming soon…

おわりに

このブログでは,SwiftやFlutterなどの日々学びつつアウトプットしています.
他にもおすすめツールがあれば教えて下さい!
また,間違いや改善点があれば,ご指摘いただけますと幸いです!