소소한개발팁
반응형
article thumbnail
BFS(너비 우선 탐색) 알고리즘
컴퓨터 언어/Java 2023. 4. 27. 15:57

import java.util.LinkedList; import java.util.Queue; public class BFSAlgorithm { static class Node { int data; Node left, right; Node(int data) { this.data = data; left = null; right = null; } } static void BFS(Node root) { Queue queue = new LinkedList(); queue.add(root); while (!queue.isEmpty()) { Node node = queue.poll(); System.out.print(node.data + " "); if (node.left != null) { queue.add(no..

Queue (큐)
컴퓨터 언어/Java 2023. 4. 27. 15:35

큐(Queue)는 선입선출(First-In-First-Out, FIFO) 원칙에 따라 작동하는 자료 구조입니다. 즉, 큐에 추가된 요소 중 가장 먼저 추가된 것이 가장 먼저 제거됩니다. Java에서는 내장 Queue 인터페이스를 사용할 수 있습니다. Queue 인터페이스는 Collection 인터페이스의 하위 인터페이스로, 큐에 요소를 추가, 제거 및 검사하는 데 사용할 수 있는 여러 가지 메소드를 제공합니다. import java.util.LinkedList; import java.util.Queue; public class QueueExample { public static void main(String[] args) { Queue queue = new LinkedList(); // 큐 요소 추가 q..

article thumbnail
(Swift) 19. Extensions (확장)
컴퓨터 언어/Swift 2021. 12. 17. 18:51

Extensions - 익스텐션을 이용해 클래스, 구조체, 열거형 혹은 프로토콜 타입에 기능을 추가할 수 있습니다. retroactive modeling으로 알려진 것과 같이 원본 코드를 몰라도 그 타입에 대한 기능을 확장할 수 있습니다. 익스텐션은 Objective-C의 카테고리와 유사합니다. Swift에서 익스텐션을 이용해 다음을 할 수 있습니다. * 계산된 인스턴스 프로퍼티와 계산된 타입 프로퍼티의 추가 * 인스턴스 메소드와 타입 메서드의 추가 * 새로운 이니셜라이저 제공 * 서브스크립트 정의 * 중첩 타입의 선언과 사용 * 특정 프로토콜을 따르는 타입 만들기 - 익스텐션은 타입에 새 기능을 추가할 수 있지만 오버라이드는(override)는 할 수 없습니다. Extension Syntax - 익스텐..

article thumbnail
(Swift) 18. Nested Types (중첩 타입)
컴퓨터 언어/Swift 2021. 12. 17. 18:33

Nested Types - 열거형은 특정 구조체나 클래스의 기능을 처리하기 위해 자주 사용됩니다. 이와 비슷하게 특정 문맥에서 좀 더 복잡한 타입을 위해 사용할 수 있는 유틸리티 클래스나 구조체를 정의할 수 있습니다. Swift에서는 이 기능을 위해 중첩 타입(nested types)을 지원합니다. 열거형, 클래스, 구조체를 그 타입 안에서 다시 정의할 수 있습니다. Nested Types in Action - 아래 코드는 블랙잭 게임에서 사용되는 카드를 모델링한 BlackjackCard라는 구조체를 정의한 (예)입니다. - BlackjackCard 구조체는 Suit과 Rank라고 부르는 두 개의 중첩 열거 타입을 포함합니다. - 블랙잭에서는 Ace 카드는 1이나 11로 사용될 수 있습니다. - 이 기능..

article thumbnail
(Swift) 17. Type Casting (타입 캐스팅)
컴퓨터 언어/Swift 2021. 12. 17. 18:24

Type Casting - 타입 캐스팅은 인스턴스의 타입을 확인하거나 인스턴스를 같은 계층에 있는 다른 superclass나 subclass로 취급하는 방법입니다. - 타입캐스팅에는 is와 as 두 연산자를 사용합니다. - 타입캐스팅을 이용하면 특정 프로토콜을 따르는지 확인할 수 있습니다. Defining a Class Hierarchy for Type Casting - 타입캐스팅의 동작을 확인하기 위한 클래스입니다. class MediaItem { var name: String init(name: String) { self.name = name } } - 이 클래스를 서브 클래싱 해서 두 개의 다른 서브클래스를 생성합니다. class Movie: MediaItem { var director: Strin..

article thumbnail
(Swift) 16 . Error Handling (에러 처리)
컴퓨터 언어/Swift 2021. 12. 15. 18:14

Error Handling - Swift에서는 런타임에 에러가 발생한 경우 그것의 처리를 위해 에러의 발생(throwing), 감지(catching), 증식(propagating), 조작(manipulating)을 지원하는 일급 클래스(first-class)를 제공합니다. - 어떤 명령은 항상 완전히 실행되는 것이 보장되지 않는 경우가 있습니다. 그런 경우에 옵셔널을 사용해 에러가 발생해 값이 없다는 것을 표시할 수 있지만, 어떤 종류의 에러가 발생했는지 확인할 수는 없습니다. 이럴 때는 구제적으로 발생한 에러를 확인할 수 있어야 코드를 작성하는 사람이 각 에러의 경우에 따른 적절한 처리를 할 수 있습니다. - 예를 들어, 디스크에서 파일을 읽어 데이터를 처리하는 일을 한다고 할 때 이 작업이 실패할 경..

반응형