Skip to content

Instantly share code, notes, and snippets.

View KaitoMuraoka's full-sized avatar
🏢
Working in Office

とんとんぼ KaitoMuraoka

🏢
Working in Office
View GitHub Profile
@KaitoMuraoka
KaitoMuraoka / ARC.swift
Created March 31, 2024 10:32
Swiftのメモリー管理
/**
Swift はメモリー管理にARC(Automatic Reference Counting) という仕組みを利用しています。
ARCは、インスタンスが作成されるたびに、値を保存するためのメモリを確保します。
このメモリは、以下の情報を保持します。
- インスタンスの型に関する情報
- プロパティの値
インスタンスが不要になると、ARCは使用されているメモリを自動的に解放します。
@KaitoMuraoka
KaitoMuraoka / main.swift
Last active December 8, 2023 17:11
"let number = 100" を Syntax でマッチ
import Foundation
import SwiftSyntax
import SwiftParser
let sourceFile = Parser.parse(source: "let number = 100")
print(sourceFile.debugDescription)
func getLetMethod() {
let statements = Array(sourceFile.statements)
let item = statements[0].item
@KaitoMuraoka
KaitoMuraoka / ManageUserDefault.swift
Created November 14, 2023 07:43
Managing UserDefault with property wrappers
import Foundation
@propertyWrapper
struct UserDefault<T> {
let key: String
let defaultValue: T
init(key: String, defaultValue: T) {
self.key = key
self.defaultValue = defaultValue
@KaitoMuraoka
KaitoMuraoka / main.swift
Created July 8, 2023 05:37
Standard input given a board (n x m のマス目が与えられた時の標準入力)
private func readStringArray(_ count: Int) -> [[Character]] {
return (1...count).map { _ in
let value = Array(readLine()!)
return Array<Character>(value)
}
}
 //example:
//
//count = 3
@KaitoMuraoka
KaitoMuraoka / main.swift
Last active May 7, 2023 08:36
関数を早めに抜ける
private func isSimilar(str1: String, str2: String) -> String {
var ok: String = "Yes"
// 条件1のチェック
if (str1.count != str2.count) {
ok = "No"
return ok
}
// 条件2のチェック
var diffCount = 0
@KaitoMuraoka
KaitoMuraoka / main.swift
Created May 7, 2023 06:59
条件式をわかりやすく書く(1)
// 点(x, y)が第何象限にあるか(1, 2, 3, 4)を返す関数
// ただし、それでもなければ0を返すようにした
private func quadrant(x: Int, y: Int) -> Int {
if (0 < x && 0 < y) {
return 1
} else if (0 > x && 0 < y) {
return 2
} else if (0 > x && 0 > y) {
return 3
} else if (0 < x && 0 > y) {
@KaitoMuraoka
KaitoMuraoka / main.swift
Created May 7, 2023 06:42
アルゴ式:複雑なプログラムを書き直す(Swift版)
// 偏差値 (Z score) を計算する
def float: calc_zscore(int: N, float[]: scores, float score)
float: average = 0.0
for (初期値: index = 0, 条件: index < N, 更新: index += 1)
average += scores[index]
endfor
average = average ÷ N の値
float: sd = 0.0
for (初期値: index = 0, 条件: index < N, 更新: index += 1)
sd += (scores[index] - average) * (scores[index] - average)