본문 바로가기

전체 글

[Python] Stack (LIFO) '스택'이란 자료 구조는 "빨래통"을 떠올리면 된다. 가장 위에서만 빨래를 빼거나 넣을 수 있는 빨래통! Swift 언어에서의 스택은 어떠한지 코드 예시를 보면서 비교해 보자. Stack - 한쪽 끝으로만 자료를 넣고 뺄 수 있는 자료 구조 빨래통의 특징: Last In First Out = LIFO 가장 처음에 넣은 빨래는? 가장 늦게 나온다. 가장 마지막에 넣은 빨래는? 가장 빨리 나온다. push, pop, is_empty def test_stack(): stack = Stack() stack.push(1) stack.push(2) stack.push(3) stack.push(4) stack.push(5) assert stack.pop() == 5 assert stack.pop() == 4 asse.. 더보기
[GitHub] Git branch 다루기 (+ 명령어) Github에서 브랜치를 생성하고, 이동하고, merge를 해 봅니다. #1 프로젝트 복사본 만들기 - git branch 코드의 복사본을 만드는 것을 바로 브랜치(branch)라고 한다. 명령어는 다음과 같다. git branch ex) git branch cart 이때 브랜치명은 자유롭게 작성하되 내가 개발하려는 기능과 관련이 있는 이름으로 짓는다. git branch login 이렇게 명령어를 입력하면 브랜치가 생성 정말 브랜치가 생성됐는지 확인하기 위해선 git branch 라는 명령어만 입력 git branch login 브랜치가 생성된 것을 확인할 수 있다. 키보드 q를 입력하여 빠져나온다. #2 브랜치 이동하기 - git switch 혹은 git checkout git branch 명령어로 .. 더보기
[Swift] Inheritance, Initializer 2024년 3월 12일 화요일 클래스의 상속 개념과 객체를 만들기 위한 다양한 초기화 방법에 대해 공부해 봅니다. #1. inheritance (상속) #2. initializer (초기화) #1. inheritance (상속) 클래스 간에 코드 및 속성을 공유하는 메커니즘을 제공: 기존 클래스에서 새로운 클래스를 만들고, 기존 클래스의 특성(속성과 메서드)을 재사용하면서 새로운 기능을 추가할 수 있도록 해준다.(서브 클래싱) 코드 재사용성: 기존 클래스의 특성을 재사용하여 중복을 피하고 유지보수성을 높일 수 있다. 계층 구조: 부모 클래스와 이를 상속받는 자식 클래스 간에 계층 구조를 형성하여 다양한 추상화와 분류 가능 override (재정의) 부모 클래스에서 '상속받은' 메서드, 속성 또는 서브스크.. 더보기
[Algorithm] 피자 나눠먹기 #2 (w/ Swift & Python) 머쓱이는 #1에서 7조각으로 잘라 팔던 피자를 6조각으로 잘라 팔기 시작했는데.. 사실 피자를 7조각으로 나누는 건 불가능했다.. #1은 문제 오류 아닌가? 피자 나눠먹기 문제 설명 머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요. 제한사항 1 ≤ n ≤ 100 solution.swift import Foundation func solution(_ n:Int) -> Int { var result = 1 while true { if (6 * result) % n == 0 { retur.. 더보기
[Swift] Class, Struct, Enum 2024년 3월 11일 월요일 인스턴스를 만들 수 있는 클래스, 구조체, 열거형에 대해 공부해 봅니다. #1. 클래스 (Class) #2. 구조체 (Struct) #3. 열거형 (Enum) #4. class, struct, Enum의 차이 #1. 클래스(Class) 클래스는 프로퍼티(Property)과 메서드(Method)로 구성되어 있다. A. 프로퍼티(Properties): 프로퍼티는 클래스, 구조체, 또는 열거형 안에 있는 변수 또는 상수를 나타낸다. 클래스의 속성으로 객체의 상태를 저장하거나 제공한다. 이러한 상태는 클래스의 인스턴스가 가질 수 있는 고유한 데이터를 나타낸다. 프로퍼티는 저장 프로퍼티(Stored Properties)와 계산 프로퍼티(Computed Properties)로 나뉜다... 더보기
[Project] 숫자 야구 게임 만들기(Lv1-6) 3월 3주차 월요일 '숫자 야구 게임' 두둥... 필수 구현 기능 요구사항 별 상세 기능을 생각해요 / 사용하면서 발생할 수 있는 예외사항들을 고려해 봅니다. Lv1 1에서 9까지의 서로 다른 임의의 수 3개를 정하고 맞추는 게임입니다 정답은 랜덤으로 만듭니다.(1에서 9까지의 서로 다른 임의의 수 3자리) Lv2 정답을 맞추기 위해 3자리수를 입력하고 힌트를 받습니다 힌트는 야구용어인 볼과 스트라이크입니다. 같은 자리에 같은 숫자가 있는 경우 스트라이크, 다른 자리에 숫자가 있는 경우 볼입니다 ex) 정답 : 456 인 경우 435를 입력한 경우 → 1스트라이크 1볼 357를 입력한 경우 → 1스트라이크 678를 입력한 경우 → 1볼 123를 입력한 경우 → Nothing 만약 올바르지 않은 입력값에 .. 더보기
[Algorithm] 피자 나눠먹기 #1 (w/ Swift & Python) 알고보니 머쓱이는 피자가게도 운영한다. 성실한 머쓱.. 피자 나눠먹기 문제 설명 머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요. 제한사항 1 ≤ n ≤ 100 solution.swift import Foundation func solution(_ n:Int) -> Int { return n/7 + (n%7 > 0 ? 1 : 0)} 삼항연산자를 사용하여 조건식 n%7 > 0이 참이면 1, 거짓이면 0을 반환하여 n을 7로 나눈 몫에 더해주면 된다. solution.python def solution(n): if n % 7 == 0: an.. 더보기
[GitHub] .gitignore, README 필수적이지 않지만 알아두면 속 시원한 .gitgnore 와 README에 대해 정리해 봅니다. #1. .gitignore #2. README #1. .gitignore git이 관리하지 않으면 하는 파일은 .gitignore라는 파일에 작성 git으로 관리하고 싶지 않은 파일! github에 업로드하고 싶지 않은 파일! ex) 남들이 알면 안되는 비밀번호, 키 등이 숨겨져있는 파일을 .gitignore에 작성할 수 있다 gitignore.io 라는 웹사이트를 활용하면 편리하게 불필요한 파일을 .gitignore에 추가할 수 있다. #2. README 프로젝트의 설명 혹은 프로젝트 협업 시 세팅방법 등을 작성하는 파일 github에 업로드 시 바로 확인이 가능 README.md라는 파일을 생성해서 글을 작.. 더보기