見出し画像

エンジニア採用担当がプログラミング頑張る話【37日目/2ヶ月間】

こんにちは、@hiroki_maekawaです。

今日はエラーを解決していき、まずは何とか動くコードを書けるように頑張っていきたいと思います。

写真はInteractive Shellについて紹介していたYouTubeの動画のスクショです(笑) この動画を作っている人は「ベトナムで英語の教師→SFでUberのエンジニア→現在フルタイムのYouTuber」という超異色の経歴を持つ人です。

面白い動画をたくさん挙げているので、興味がある方は是非見てみて下さい!


1. AtCoderの問題

今日の問題です。

スクリーンショット 0032-07-09 14.04.58

スクリーンショット 0032-07-09 14.05.18

スクリーンショット 0032-07-09 14.05.29

スクリーンショット 0032-07-09 14.08.40

昨日の問題とかなり似ている気がしますが、ここまで書いたところで「要素の中で一番大きい数字を選ぶ->それより小さい要素を選ぶ」方法が分からずギブアップ、、

package main

import (
	"fmt"
	"sort"
)

func main(
) {
	var N int
	fmt.Scan(&N)
	//要素がN個のスライスdをつくる
	d := make([]int, N)
	for i := range d {
		fmt.Scan(&d[i])
	}
	//スライスdの要素を大きい順に並べる
	sort.Sort(sort.Reverse(sort.IntSlice(d)))
	count := 0
	//要素の中で一番大きい数字を選ぶ->それより小さい要素を選ぶ
	count++
	fmt.Println(count)
}

模範解答を見ると、mapとlenを使って異なる値の個数を調べることができると知りました、、mapについての知識がなかったため補充しました。

スライスの重複をmapで削除できると知り、下記で実現できることが分かりました・・!(スライスを作成→mapで重複する値を削除→lenで値の個数を調べる)

package main

import "fmt"

func main() {
	var N int
	fmt.Scan(&N)
	d := make([]int, N)
	for i := range d {
		fmt.Scan(&d[i])
	}
	p := make(map[int]int)
	for v := range d {
		p[d[v]]++
	}
	fmt.Println(len(p))
}


2. 業務自動化コード(Python)

押したいボタンが全部押せる時と押せない時があるのですが、とりあえず下記を改善して途中で止まらないコードを書くことができました。

・XPATHやCSSを取得する際に検証ツール内で重複がないかを確認
・要素が全て取れるまで次の作業をしないようにarguments[0]を使用
・scrollIntoView()を使ってクリックする前に指定の要素までスクロールする
・tryとexceptの間にif breakを使って、try内の処理とexcept内の処理が同時進行にならないようにする
・while、try、except、else、finallyの使用


今日できるようになったこと

・CSS要素に重複がないか検証ツールで確認
・arguments[0]の使用
・scrollIntoView()の使用
・if breakの使用
・Pythonでループ処理(while、try、except、else、finally)


さいごに

とりあえず動くようにはなりましたが、同じページ内にある自分の押したいボタンを漏れなく全て押すことができていない状態なので、明日解決できるように試行錯誤していきたいと思います。

それではまた!

いいなと思ったら応援しよう!