Contents
UILabel에 Image 추가하기
UILabel에 Image 추가하기
2022.05.07애플 기본 날씨 앱에서 컬렉션뷰의 헤더의 Label에 SFSymbol이 같이 구현되어 있다. UILabel의 TextAttribute 프로퍼티를 활용하여 구현할 수 있다. NSTextAttachment의 image 프로퍼티에 UIImage를 할당하여 구현. UIImage의 SymbolConfiguration로 사이즈, 웨이트, 스케일을 설정해 줄 수 있다. extension String { func attach( with imageName: String, pointSize: CGFloat, tintColor: UIColor ) -> NSAttributedString { let imageAttachment = NSTextAttachment() let imageConfig = UIImage.SymbolCon..
[운영체제](반효경) 2강. Introduction to Operating Systems
[운영체제](반효경) 2강. Introduction to Operating Systems
2022.03.282. Introduction to Operating Systems 1. 운영체제란 무엇인가? 운영체제란? 협의의 운영체제(커널) ← 전공자 입장에서의 개념 운영체제의 핵심 부분으로 메모리에 상주하는 부분 광의의 운영체제 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념 운영체제의 목적 컴퓨터 시스템을 편리하게 사용할 수 있게 해준다. 운영체제는 동시 사용자/ 프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환경을 제공(실제로는 아니다.) 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행 컴퓨터 시스템의 자원을 효율적으로 관리 프로세서, 기억장치, 입출력 장치 등의 효율적 관리 사용자간의 형평성 있는 자원 분배 주어진 자원으로 최대한의 성능 도출 사용자 및 운영체제 자신의 보호 프로세스, ..
[운영체제](반효경) 1강. 강의소개
[운영체제](반효경) 1강. 강의소개
2022.03.28운영체제 강의로 유명하신 반효경 교수님의 운영체제 강의를 듣고 정리한 내용입니다. 비전공자분들이나, 졸업한지 오래되서 개념을 다시한번 정립하시고 싶은 분들에게 추천드립니다. 운영체제 - 이화여자대학교 | KOCW 공개 강의 1. 강의소개 개요 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층 개념과 역할, 요소 및 그 알고리즘에 핵심부분에 대해 기초부터 학습한다. 목차 운영체제 개요 컴퓨터 시스템의 구조 프로세스 관리 CPU 스케줄링 병행 제어 데드락 메모리 관리 가상 메모리 파일 시스템 입출력 시스템 디스크 관리 운영체제란 무엇인가? 운영체제란? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 하드웨어와의 인터페이스 사용자 및 각종 소프트웨어와..
Interpreter Pattern
Interpreter Pattern
2022.03.24개요 인터프리터 패턴, 말 그대로 해석을 위한 디자인 패턴이다. 특정 Language(언어)로 작성된 Sentence를 해석할때 쓰인다. 이 때 언어는 어떤 규칙(syntax)으로 표현되어있어야 하고 이 규칙을 일반화하여 해석하는 것이 기본 아이디어. 사용 예 정규표현식 Java의 실행 (JVM Byte 코드를 기계어로 변환하는 과정) SQL과 같은 데이터베이스 쿼리언어 해석 구현 아이디어 핵심 규칙과 의미있는 기호 패턴에 대한 개별클래스들이 트리구조로 동작하며 해석을 수행한다. 모식도 예제 “46의2진수 46의16진수 16895의2진수 16895의16진수” 와 같은 문자열을 받아 각각의 진법변환 연산을 수행한 결과를 출력하는 코드를 작성해보자 Context 해석의 대상이 되는 문자열을 보통 단위별로 끊..
[Swift] High-Order Function (고차함수)
[Swift] High-Order Function (고차함수)
2021.11.14고차함수 고차함수는 클로져와 같이 쓰인다. forEach(_:) 기본적으로 for - in 루프와 같은 동작을 한다. break, continue 같은 플로우 컨트롤은 할 수 없음. 모든 요소를 순회한다. 클로저 내부에 return 키워드를 쓰더라도 해당 클로저만 종료 될 뿐 순회가 종료되지 않는다. 뒤에 붙는 클로저 구문을 각 요소를 탐색할때마다 call한다. 아래와 같이 두번 중첩해서 쓰는 것도 가능함. stackView.arrangedSubviews.forEach { smallStackView in let stackView = smallStackView as? UIStackView stackView?.arrangedSubviews.forEach { view in let label = view as?..
[프로그래머스] 배달 / 다익스트라(BFS)
[프로그래머스] 배달 / 다익스트라(BFS)
2021.06.28import collections import sys import heapq def solution(N, road, K): graph = collections.defaultdict(list) result = collections.defaultdict() for i in range(1, N+1): result[i] = 500001 result[1] = 0 for u, v, t in road: graph[u].append((v,t)) graph[v].append((u,t)) print(graph) Q = [(1, 0)] dist = collections.defaultdict(int) answer = 0 while Q: node, time = heapq.heappop(Q) for v, t in graph[no..