Movatterモバイル変換


[0]ホーム

URL:


信之 岩永, profile picture
Uploaded by信之 岩永
PPTX, PDF12,949 views

Coding Interview

2014/5/31 めとべや東京 にて発表。コーディング面接を題材にしたライブコーディング(の前ふり的なスライド)コーディング内容(台本、あるいは、3分間クッキング方式の既製品)はOneDriveに: http://1drv.ms/T1uCCd

Embed presentation

Downloaded 10 times
コーディング面接岩永 信之
目的・今日やること• 日本でももっとコーディング面接はやらないかな• 実際に出るような問題で、ありそうな流れの例をライブ コーディング
出題例• 文字列の中から回文になっている部分をすべて列挙abcbada, b, c, bcb, abcba
ポイント• 見られるのは計算機科学的なところ• アルゴリズムを考えられるか• 計算量やテストも考えているか• 過程も見られる• どういう考えでコードを書いているか• 試験監との対話
やること• まずはシンプルな実装を• 計算量とか気にせずとりあえず結果出したい• 後々、アルゴリズムを改善していくうえでのテストに使いたい
ここまで• アルゴリズムがらみではyield return便利• この手の問題にはデータの列挙が非常に多い• 「substringの列挙」と「回文判定」を分けれる
やること• ちょっとコード整理• 1で作ったコードはテスト用にとっておきたい• → SimpleImplementationクラスに移動• オーダーとか抜きにして軽く書き換え&テストしてみる• string.Substringは呼ぶたびに文字列のコピーを作るという問題が• 回文判定を前にもってきて、必要な時にだけSubstringするように• →Implementation1クラス追加
ここまで• とりあえず下準備完了• stringのコピー作らないように• 条件判定をデリゲートで渡して前にもってくる• テスト• 1で作ったコードとSequenceEqual• とりあえずテストデータは数パターン• 後で時間があればもっとテストケース増やす
やりたいこと• 最適化の基本は計測• ループの一番深いところにcount++仕込む• Stopwatch
ここまで• 判定の順序変えただけなので• 比較回数は変わってない• 文字列コピーの頻度が減るので• 実行時間はかなり減る• 元のコードは常時O(n3)• 新しいコードは平均的にはO(n2)
やりたいこと• ようやくまともにアルゴリズムを考える回文非回文回文a a非回文a a回文の両脇だけ見れば1周り大きい回文の判定できる回文a b回文非回文非回文回文でないものを中心として別の回文ができることはありえない
ここまで• 元のアルゴリズム• 平均O(n2)、最悪O(n3)• ちゃんとしたアルゴリズム• 平均O(n)、最悪O(n2)
最後に• この内容は下準備ありなので手際よくやれて当然• あんまりテスト コードに気をとられてるとそれだけで時間切れになるかも• 先にどういうコード書きたいかのアイディア伝える• 本番中にいいアルゴリズムを思いつくとも限らないけども、対話しながら進める

Recommended

PDF
Kerasで作ったbotの話
PPTX
非同期処理の基礎
PPTX
Anders Hejlsberg Q & A
PPTX
Windows7 / Windwos8 比較してみた
byk k
 
PPTX
.NET vNext
PDF
ReactiveSignalR
PPTX
C# design note sep 2014
PPTX
今から始める、Windows 10&新.NETへの移行戦略
PPTX
C#とILとネイティブと
PDF
シリコンバレー 面接体験
 
PDF
DeclarativeSql
PPTX
Modern .NET
PDF
第5回 cogbot勉強会!
PPTX
C#や.NET Frameworkがやっていること
PDF
C++ マルチスレッドプログラミング
PDF
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
PDF
中の下のエンジニアを脱出するための仕事術
PPTX
めとべや東京#4 LT「WP8.1アプリ開発のススメ」
PPTX
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
PDF
C# でブロックチェーン実装
PDF
Yarudake
PDF
アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数・文字列探索・簡単なソート]
PDF
プログラミング入門
ODP
Lt会01_uetch
PDF
Introduction to programming competition [revised][PDF]
 
PDF
AtCoder Beginner Contest 011 解説
PDF
勉強か?趣味か?人生か?―プログラミングコンテストとは
PDF
新しくプログラミング言語・・・Rubyでやってみた
PPT
Pythonintro
KEY
Algebraic DP: 動的計画法を書きやすく

More Related Content

PDF
Kerasで作ったbotの話
PPTX
非同期処理の基礎
PPTX
Anders Hejlsberg Q & A
PPTX
Windows7 / Windwos8 比較してみた
byk k
 
PPTX
.NET vNext
PDF
ReactiveSignalR
PPTX
C# design note sep 2014
PPTX
今から始める、Windows 10&新.NETへの移行戦略
Kerasで作ったbotの話
非同期処理の基礎
Anders Hejlsberg Q & A
Windows7 / Windwos8 比較してみた
byk k
 
.NET vNext
ReactiveSignalR
C# design note sep 2014
今から始める、Windows 10&新.NETへの移行戦略

Viewers also liked

PPTX
C#とILとネイティブと
PDF
シリコンバレー 面接体験
 
PDF
DeclarativeSql
PPTX
Modern .NET
PDF
第5回 cogbot勉強会!
PPTX
C#や.NET Frameworkがやっていること
PDF
C++ マルチスレッドプログラミング
PDF
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
PDF
中の下のエンジニアを脱出するための仕事術
PPTX
めとべや東京#4 LT「WP8.1アプリ開発のススメ」
PPTX
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
PDF
C# でブロックチェーン実装
C#とILとネイティブと
シリコンバレー 面接体験
 
DeclarativeSql
Modern .NET
第5回 cogbot勉強会!
C#や.NET Frameworkがやっていること
C++ マルチスレッドプログラミング
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
中の下のエンジニアを脱出するための仕事術
めとべや東京#4 LT「WP8.1アプリ開発のススメ」
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
C# でブロックチェーン実装

Similar to Coding Interview

PDF
Yarudake
PDF
アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数・文字列探索・簡単なソート]
PDF
プログラミング入門
ODP
Lt会01_uetch
PDF
Introduction to programming competition [revised][PDF]
 
PDF
AtCoder Beginner Contest 011 解説
PDF
勉強か?趣味か?人生か?―プログラミングコンテストとは
PDF
新しくプログラミング言語・・・Rubyでやってみた
PPT
Pythonintro
KEY
Algebraic DP: 動的計画法を書きやすく
PDF
U-16プログラミングコンテスト CHaser を利用したプログラミング指導
PPTX
コード祭り予選突破練習会
PPTX
AtCoder Beginner Contest 004 解説
PDF
実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)
PPTX
AtCoder Beginner Contest 012 解説
PDF
ソースコードの品質向上のための効果的で効率的なコードレビュー
PDF
Ruby紹介(pdf)
PDF
The FizzBuzz Programing Contest
PDF
Pythonで始めるDropboxAPI
PDF
20120706-readablecode
Yarudake
アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数・文字列探索・簡単なソート]
プログラミング入門
Lt会01_uetch
Introduction to programming competition [revised][PDF]
 
AtCoder Beginner Contest 011 解説
勉強か?趣味か?人生か?―プログラミングコンテストとは
新しくプログラミング言語・・・Rubyでやってみた
Pythonintro
Algebraic DP: 動的計画法を書きやすく
U-16プログラミングコンテスト CHaser を利用したプログラミング指導
コード祭り予選突破練習会
AtCoder Beginner Contest 004 解説
実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)
AtCoder Beginner Contest 012 解説
ソースコードの品質向上のための効果的で効率的なコードレビュー
Ruby紹介(pdf)
The FizzBuzz Programing Contest
Pythonで始めるDropboxAPI
20120706-readablecode

More from 信之 岩永

PPTX
YouTube ライブ配信するようになった話
PPTX
C# 9.0 / .NET 5.0
PPTX
C# コンパイラーの書き換え作業の話
PPTX
Unicode文字列処理
PPTX
C# 8.0 非同期ストリーム
PPTX
C# 8.0 null許容参照型
PPTX
C# 8.0 Preview in Visual Studio 2019 (16.0)
PPTX
async/await のしくみ
PPTX
.NET Core 2.x 時代の C#
PPTX
C# 7.2 with .NET Core 2.1
PPTX
C#言語機能の作り方
PPTX
Unityで使える C# 6.0~と .NET 4.6
PPTX
それっぽく、適当に
PPTX
.NET Compiler Platform
PPTX
Deep Dive C# 6.0
PPTX
Orange Cube 自社フレームワーク 2015/3
PPTX
Code Contracts in .NET 4
PPTX
今から始める、Windows 10&新.NETへの移行戦略
PPTX
C#/.NETがやっていること 第二版
PPTX
プログラミング .NET Framework 第4版
YouTube ライブ配信するようになった話
C# 9.0 / .NET 5.0
C# コンパイラーの書き換え作業の話
Unicode文字列処理
C# 8.0 非同期ストリーム
C# 8.0 null許容参照型
C# 8.0 Preview in Visual Studio 2019 (16.0)
async/await のしくみ
.NET Core 2.x 時代の C#
C# 7.2 with .NET Core 2.1
C#言語機能の作り方
Unityで使える C# 6.0~と .NET 4.6
それっぽく、適当に
.NET Compiler Platform
Deep Dive C# 6.0
Orange Cube 自社フレームワーク 2015/3
Code Contracts in .NET 4
今から始める、Windows 10&新.NETへの移行戦略
C#/.NETがやっていること 第二版
プログラミング .NET Framework 第4版

Coding Interview


[8]ページ先頭

©2009-2025 Movatter.jp