목록전체보기 (69)
슈프림 블로그
객체 인스턴스를 비교하는 방법 연산자 오버로딩 Swift에서는 기존 연산자에 새로운 기능을 할당하고 새로운 사용자 정의 연산을 만들 수 있다. 더하기 연산자 (+) 더하기 연산은 두 숫자를 덧셈한 값이나, 두 문자열을 연결한 값을 반환한다. 더하기 연산자를 사용하여 x,y 좌표값을 갖는 Point 클래스를 더하는 기능을 만들 수 있을까? class Point { var x: Int var y: Int static func +(left: Point, right: Point) -> Point { return Point(x: left.x+right.x, y: left.y+right.y) }var point1 = Point(x: 1, y:3) var point2 = Point(x: 2, y:4) print(po..
객체지향 프로그래밍(OOP) 객체지향 프로그래밍이란 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 객체라는 기본 단위로 나누고 이 객체들의 상호작용으로 서술하는 방식이다. 프로그래밍 방법론의 진화 절차지향 프로그래밍 초기 프로그래밍 방식이었던 절차지향 프로그래밍은 그 프로그램이 가지는 논리적인 기능만을 중점적으로 구현을 했으며, 어떤 데이터를 취급하는지에 대해서는 별로 관심이 없었다. 하지만 이 방식은 조금만 코드가 복잡해지면 이해하기 어려워지고, 유지보수도 힘들어진다. 구조적 프로그래밍 이 문제를 해결하기 위해 거대한 로직을 함수와 프로시져 단위로 프로그램을 구성하는 구조적 프로그래밍이 등장하였지만, 이 방식은 데이터의 처리 방법을 구조화했을뿐, 데이터 자체는 구조화하..
고민중인 문제!-! 기록용 더보기 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이 hit, target가 cog, words가 [hot,dot,dog,lot,log,cog]라면 hit -> hot -> dot -> dog -> cog와 같이 4단계를 거쳐 변환할 수 있습니다. 두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 begin을 target으로 변환할 수 있는지 re..
https://book.algospot.com/ 알고리즘 문제 해결 전략 프로그래밍 대회에서 배우는 알고리즘 문제 해결 전략, 구종만 지음, 인사이트, ISBN 978-89-6626-054-6 새 소식 책 소개 은 새로운 알고리즘 책입니다. 종이에 적힌 의사코드 book.algospot.com 당장 빨리 결과가 실행되는 코드를 작성하는 것 보다, 읽기 쉬운 코드를 작성하는 것이 중요하다. 코드 스타일을 간결하고 일관되게 유지하려는 노력이 필요하다. 아래 나오는 내용은 기본적인 프로그래밍 실력을 쌓을 때 지키면 좋은 규칙들이며, 오랜 시간을 들여 체계적인 구조를 설계할 때 보다는 빠르고 정확하게 간결한 코드를 구현할 때 도움이 될 만한 방법들이다. 간결한 코드를 작성하기 코드가 짧으면 짧을수록 오타나 버그..
Any Swift의 모든 데이터 타입을 담을 수 있는 자료형 단, 특정 데이터 타입의 변수에 Any형 값을 저장할 수 없다. (형변환을 통해서만 가능) var anyVal: Any = 10// 정수형도 가능하고 // var intVal: Int = anyVal// compile error anyVal = 100.1// 실수형도 가능하고 // var doubleVal: Double = anyVal // compile error anyVal = true// Bool형도 가능하고 // var boolVal: Bool = anyVal// compile error anyVal = "문자열"// 문자열도 가능하다 // var strVal: String = anyVal// compile error AnyObject ..
기본 데이터 타입 Bool Int, UInt Float, Double Character, String Bool true, false Int 정수형 기본 64비트 정수형 UInt 64비트 양의 정수형 Float 32비트 부동소수형 Double 실수형 기본 64비트 부동소수형 Character 문자 타입, 한글자, 유니코드 사용, 큰 따옴표 ("") 사용 String 문자형 기본 문자열 타입, 여러 글자, 유니코드 사용, 큰 따옴표 ("") 사용 '+' 연산자로 두개 이상의 문자열을 합쳐서 반환할 수 있음. 여러 줄의 문자열은 큰따옴표 3개를 사용함. var str: String = "Hello" var str2: String = "world!" print(str + " " + str2) // "Hello ..
배열 선언 // 선언만! int[] arr; int arr[]; // 선언, 배열크기 할당, 빈 배열 int[] intArr = new int[5];// 초기값 {0, 0, 0, 0, 0} String[] strArr = new String[5];// 초기값 {"", "", "", "", ""} Student[] stdArr = new Student[5];// 초기값 {null, null, null, null, null} 배열 다루기 (Arrays) import java.util.Arrays public static void main(String[] args) { String[] arr = {"A", "D", "C", "B", "E"}; // toString() // 배열의 요소를 문자열로 출력. Sys..
Pattern pattern = Pattern.compile("정규식"); Matcher matcher = pattern.matcher("비교할 문자열"); matcher 변수를 가지고 정규식과 일치하는 부분에 대한 작업을 수행할 수 있다. import java.util.regex.Matcher; import java.util.regex.Pattern; public static void main(String[] args){ Pattern pattern = Pattern.compile("(^[0-9]*$)"); Matcher matcher = pattern.matcher(inputValue); matcher.matches()// 주어진 문자열 전체가 패턴과 일치하면 true 반환 matcher.find()..