전체 글
[Swift]연산자 메소드 - Operator Method
연산자 오버로딩 - Operator Overloading 이미 존재하는 연산자가 새로운 피연산자를 처리할 수 있도록 확장한다. struct Point { var x = 0.0 var y = 0.0 } let p1 = Point(x: 12, y: 34) let p2 = Point(x: 67, y: 89) p1 == p2 // error : Binary operator '==' cannot be applied to two 'Point' operands == 연산자는 Int, Double, String 등의 다양한 데이터 타입의 동등성을 비교해주는 연산자이다. 하지만 내가 방금 작성한 구조체 Point에 대해서는 == 연산자를 통한 동등성 비교가 가능하지 않다. 따라서 같은 형식의 데이터 간의 연산을 처리하기..
[Swift]Swift가 제공하는 연산자들 - Operators in Swift (2)
비트 연산자 - Bitwise Operators 비트 단위로 연산하는 연산자. 첫 번째 비트를 부호 비트로 사용하는 signed type의 자료형은 비트 연산에 주의해야 한다. 비트 NOT 연산자 - Bitwise NOT Operator 👉 ~a value1 ~value1 0 1 1 0 // unsigned int8 let a : UInt8 = 0b0101_1011 // 91 (0101 1011) let b : UInt8 = ~a // 164(1010 0100) // signed int8 let c : Int8 = 0b0101_1011 // 91 (0101 1011) let d : Int8 = ~c // -92(1010 0100) 비트 AND 연산자 - Bitwise AND Operator 👉 a & b..
[Swift]Swift가 제공하는 연산자들 - Operators in Swift (1)
산술 연산자 - Arithmetic Operators Swift는 데이터 타입에 굉장히 민감한 언어이므로, 연산이 이루어지기 전에 두 피연산자의 데이터 타입 통일이 이루어져야 한다.(형식 안전성 - Type Safety) 산술 연산자 설명 사용 예시 + 덧셈 a + b - 뺄셈 a - b / 나눗셈 a / b % 나머지(정수 간 연산만 가능) a % b 실수 간의 나머지 연산은 truncatingRemainder() 메소드를 사용해야 한다. let c = 12.0 let d = 5.0 c.truncatingRemainder(dividingBy: d) // 2 오버플로우 연산자 - Overflow Operators 다른 C 계열 언어와는 다르게, Swift에서는 오버플로우를 에러로 판단한다. 예를 들어, ..
[2020 여름 효창공원 스터디]HTTP 프로토콜
HTTP 프로토콜 🦋 참고한 문서 프런트엔드 개발자가 알아야하는 HTTP 프로토콜 https://joshua1988.github.io/web-development/http-part1/ 개알못을 위한 TCP/IP의 개념 https://brunch.co.kr/@wangho/6 숙명여자대학교 IT공학전공 임순범 교수님의 웹프로그래밍기초 강의 자료 도서 'HTTP 완벽 가이드' HTTP 프로토콜 월드 와이드 웹(World Wide Web, WWW)에서 통신하는 데 사용하는 프로토콜 프로그램이다. HTTP를 사용하는 방법은 여러가지지만, 웹브라우저와 웹 서버 사이에서의 쌍방향 통신에 사용하는 것이 가장 대표적이다. HTTP 프로토콜의 특징 HTTP는 신뢰성 있는 데이터 전송 프로토콜을 사용한다. 데이터가 지구 반..
[Swift]이름 정의 규칙 - Camel Case
스위프트가 사용하는 이름 정의 규칙은 'Camel Case'임. Camel Case에 따라 이름을 정의하면 낙타 등에 있는 혹처럼 올록볼록한 이름이 나오기 때문에 지어진 이름이라고 함. swift에서는 무엇의 이름을 짓느냐에 따라 두가지 정의 방법으로 나뉨. 1) UpperCamelCase 나오는 단어의 첫 글자를 모두 대문자로 써주는 방법. Class(객체), Structure(구조체), Enumeration(열거형), Extension, Protocol 등의 이름을 정의할 때 사용함. 예) Name, BookIndex, MemberNumber, UserStatusCode 등 2) lowerCamelCase 첫 단어를 제외한 모든 단어의 첫글자는 UpperCamelCase처럼 모두 대문자로 써줌 Var..
백준 2675번 - 문자열 반복(Python)
num = int(input()) for i in range(num): number, string = input().split() txt = '' for j in string: txt += j * int(number) print(txt) string의 각 문자를 number만큼 반복하여 txt에 붙여넣고 출력. 초간단 하지만 이 문제의 의문점은 num = int(input()) for i in range(num): number, string = input().split() for x in string: print(x * int(number), end='\n' if x == string[-1] else '') 왜 저 코드는 맞고 이 코드는 틀리냐는 것. 아직도 반례를 못 찾았다.
백준 1431번 - 시리얼 번호(Python)
https://www.acmicpc.net/problem/1431 문제 다솜이는 기타를 많이 가지고 있다. 그리고 각각의 기타는 모두 다른 시리얼 번호를 가지고 있다. 다솜이는 기타를 빨리 찾아서 빨리 사람들에게 연주해주기 위해서 기타를 시리얼 번호 순서대로 정렬하고자 한다. 모든 시리얼 번호는 알파벳 대문자 (A-Z)와 숫자 (0-9)로 이루어져 있다. 시리얼번호 A가 시리얼번호 B의 앞에 오는 경우는 다음과 같다. A와 B의 길이가 다르면, 짧은 것이 먼저 온다. 만약 서로 길이가 같다면, A의 모든 자리수의 합과 B의 모든 자리수의 합을 비교해서 작은 합을 가지는 것이 먼저온다. (숫자인 것만 더한다) 만약 1,2번 둘 조건으로도 비교할 수 없으면, 사전순으로 비교한다. 숫자가 알파벳보다 사전순으로..