본문 바로가기
728x90
반응형

컴퓨터 언어14

[Python][자료구조] HashMap과 TreeMap, HashSet과 TreeSet HashMap(dictionary) HaspMap은 해싱을 기반으로 하는 자료구조이고 파이썬에서는 dictionary라는 HashMap이 존재한다. HashMap은 key-value 쌍으로 값을 저장하는 자료구조이고 해싱을 기반으로 하기 때문에 탐색, 삽입, 삭제의 시간복잡도가 O(1)이다. 사용법 1. 선언 map = dict() 2. 삽입 map[key] = value 3. 탐색 키 탐색 if key in map: #key가 map에 존재한다면 true 값 탐색 if value in map.values(): #value가 map에 존재하면 true 4. 삭제 d.pop(key) # key에 해당하는 값 삭제하고 그 값 반환 map["a"] += 1과 같이 정수형 value를 저장한 다음 연산을 할 수.. 2023. 2. 18.
[Kotlin] 데이터 클래스(data class)의 장점 코틀린 클래스에는 데이터 클래스라는 것이 존재한다. 주로 데이터들의 집합을 표현하기 위해서 사용한다. 예를 들어 학생의 정보를 학번, 이름으로 표현한다고 하면 일반적인 클래스의 경우 다음과 같이 사용한다. class Student(number : String, name : String){ var sNumber = number var sName = name } 동등성 아래와 같이 두 Student 인스턴스를 생성하자. val s1 = Student("123","chulsoo") val s2 = Student("123","chulsoo") println(s1==s2) 위 코드의 결과는 False이다. 프로퍼티의 값은 같으나 결과적으로 서로 다른 객체이기 때문이다. 즉 "=="연산은 동일성을 체크하는 것이다... 2022. 12. 22.
[Kotlin] 영역 함수 (run, let, with, apply, also) 코틀린에는 영역 함수라는 것이 존재한다. 영역 함수를 사용하면 특정 객체에 대한 식이라는 것을 알 수 있어서 가독성이 좋아진다. 영역 함수 모두 사용하는 목적은 비슷하지만 사용 방식에 있어서 약간의 차이점들이 존재한다. 객체 반환 여부에 따라서 구분해보자면 run, let, let과 apply, also로 나눌 수 있다. 먼저 영역 함수를 사용하지 않을 때와 사용할 때를 비교해보겠다. 사용하지 않을 때 class Student(){ var number = "" var name = "" fun printInfo(){ println("your number : $number your name : $name") } } val s = Student() s.number = "1234" s.name = "chulso.. 2022. 12. 21.
[Kotlin] 고차 함수와 람다 함수 고차 함수란 함수를 인자로 받거나 함수로 반환하는 함수이다. 람다 함수의 다른 뜻은 익명 함수로 함수를 단순하게 표현할 수 있다. 불필요한 연산을 줄여 메모리를 아낄 수 있다는 장점이 있다. 이제 고차 함수의 인자로 람다 함수를 받는 방법을 공부해보려한다. 첫 번째와 두 번째 인자로 정수를 받고 세 번째 인자로 연산을 정의한 함수를 받으려고 한다. 세 번째 인자에 따라서 두 정수를 더하거나 빼거나 곱하는 함수를 만들어보려한다. fun calculate(a:Int,b:Int,op:(Int,Int)->Int){ println(op(a,b)) } 세 번째 인자의 경우 정수 두 개를 받아서 정수를 반환하는 형태이다. 이제 이를 사용하기 위해서는 calculate 함수를 호출할 때 세 번째 인자로 람다 함수를 주.. 2022. 12. 20.
728x90
반응형