본문 바로가기

전체 글

[Swift] array, set, dictionary and OOP 2024년 3월 10일 일요일 배열, 세트, 딕셔너리, 그리고 객체지향 프로그래밍에 대해 간단히 정리해 봅니다. #1. Array #2. Set #3. Dictionary #4. OOP (Object-Oriented Programming) #1. Array 동일한 타입의 요소들을 저장하는 순서가 있는 컬렉션 특정 요소의 인덱스를 사용하여 접근하고 수정할 수 있으며, 배열의 크기는 동적으로 조절된다. 처음에 선언할 때(초기화할 때) 배열의 길이를 미리 지정하지 않아도 된다. ▼ 배열 생성하기 // 1. 타입 추론으로 생성하기 var array1 = [1, 2, 3] var array2 = [] // error! 타입 추론으론 빈 배열 생성 불가 // 2. 타입 Annotation으로 생성하기 var arr.. 더보기
[Python] 알고리즘 기초: 공간 복잡도 공간 복잡도란? 입력값과 문제를 해결하는 데 걸리는 공간과의 상관관계 입력값이 2배로 늘어났을 때 문제를 해결하는 데 걸리는 공간은 몇 배로 늘어나는지를 보는 것 입력값이 늘어나도 공간이 덜 늘어나는 알고리즘이 좋은 알고리즘! ▼ 시공간 복잡도를 이해하기 위한 알파벳 찾기 문제 문제 설명 a 부터 z 까지, 주어진 문자열에서 알파벳이 포함되어 있을 경우 처음 등장하는 인덱스를 반환하는 프로그램을 작성하세요. 포함되어있지 않을 경우 -1을 반환하면 됩니다. ※ 아스키(ascii) 코드 다루기 import string # 1. 알파벳을 바로 꺼내오는 방법 print(string.ascii_lowercase) # 2. ord 연산 print(ord('a'), ord('A'), ord('@')) # 97 65 .. 더보기
[Python] 알고리즘 기초: 시간 복잡도 점근 표기법의 두 가지 종류, O(N), Ω(1)와 시간 복잡도의 개념에 대해 이해해 봅니다. 1. 빅오(Big-O) 표기법 2. 빅오메가(Big-Ω) 표기법 3. 시간 복잡도 - 입력값이 늘어나도 걸리는 시간이 덜 늘어나는 알고리즘이 좋은 알고리즘! 점근 표기법이란? → 알고리즘 "효율성"을 평가하는 방법 = 알고리즘의 성능을 수학적으로 표기 1. 빅오(Big-O) 표기법 : O(N) 최악의 성능이 나올 때 어느 정도의 연산량이 걸릴것인가 Q. 다음과 같은 숫자로 이루어진 배열이 있을 때, 이 배열 내에 특정 숫자가 존재한다면 True, 존재하지 않다면 False 를 반환하는 프로그램을 작성하세요. arr = [3, 5, 6, 1, 2, 4] is_number_exist(3, arr) # True is.. 더보기
[Swift] queue & stack 2024년 3월 10일 일요일 swift 기본 개념 중, queued와 stack에 대해 명확하게 이해하는 것이 오늘의 목표! data에 대한 개념으로 array 등을 이용하여 직접 구현할 수 있도록 한다. 1. 큐 2. 스택 1. 큐 (Queue) First-In-First-Out (FIFO) 먼저 들어온 값을 먼저 내보내는 구조 ※ 예 : 버블티 빨대 /* 는 제네릭이라는 것인데, 하나의 타입으로 국한되지 않고 타입에 유연하게 코드를 작성할 수 있는 기능. */ struct Queue { private var queue: [T] = [] public var count: Int { return queue.count } public var isEmpty: Bool { return queue.isEmpt.. 더보기
[Algorithm] 양꼬치 (w/ Swift & Python) 알고보니 머쓱이는 양꼬치 가게의 사장님이었다. 양꼬치 문제 설명 머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요. 제한사항 0 Int { return (n*12000) + ((k - (n/10))*2000) } ※ 두 개의 정수 n과 k를 입력받아 (n * 12000) + ((k - (n / 10)) * 2000) 공식을 통해 계산한 결과를 반환하는 간결한 코드 func solution(_ n: Int, _ k: Int) -> Int { let baseCost.. 더보기
[Python] Basic (2) 기초문법의 내맘대로 마지막! 조건문과 반복문을 복습해 봅니다. 아래 링크에서 최근 공부를 시작한 Swift 언어와 비교하며 두 언어의 차이점도 알아봅니다. Swift 조건문과 반복문 보러가기 #1. 조건문 #2. 반복문 #3. 클래스 1. 조건문 if / else 로 구성! def is_adult(age): if age > 20: print('성인입니다') # 조건이 참이면 성인입니다를 출력 else: print('청소년이에요') # 조건이 거짓이면 청소년이에요를 출력 is_adult(30) # 무엇이 출력될까요? 2. 반복문 파이썬에서의 반복문은, 리스트의 요소들을 하나씩 꺼내쓰는 형태 → 무조건 리스트와 함께 쓰인다. fruits = ['사과','배','감','귤'] for fruit in fruit.. 더보기
[Algorithm] 배열의 평균값 (w/ Swift & Python) For in 반복문을 이용해서 배열의 평균 값을 구해봅니다. 배열의 평균값 문제 설명 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요. 제한사항 0 ≤ numbers의 원소 ≤ 1,000 1 ≤ numbers의 길이 ≤ 100 정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다. solution.swift import Foundation func solution(_ numbers:[Int]) -> Double { var sum = 0 for i in 0.. 더보기
[Python] Basic (1) 23년 하반기에 공부했던 Python 기초 문법을 하나씩 둘씩 정리하며 복습해 봅니다. 아자아자 다시 시작이다앗! #1. 변수 & 기본연산 #2. 자료형 - 숫자,문자형 / 리스트형 / Dictionary형 / Dictionary형과 List형의 조합 #3. 함수 - 함수의 정의 / 함수의 응용 #1 변수 & 기본연산 a = 3 # 3을 a에 넣는다 b = a # a를 b에 넣는다 a = a + 1 # a+1을 다시 a에 넣는다 num1 = a*b # a*b의 값을 num1이라는 변수에 넣는다 num2 = 99 # 99의 값을 num2이라는 변수에 넣는다 # 변수의 이름은 마음대로 지을 수 있음! # 진짜 "마음대로" 짓는 게 좋을까? var1, var2 이렇게? ※ 모든 프로그래밍 언어가 그렇겠지만 변.. 더보기