본문 바로가기

전체 글

[Python] Stack 예제 여는 괄호와 닫는 괄호가 쌍을 이루는지를 확인하는 코드를 짜기 위해 스택 자료구조를 사용해 봅니다. '(', ')', '{', '}', '[' 및 ']' 만 포함된 문자열이 주어졌을 때 입력 문자열이 유효한지 확인하는 프로그램을 작성하세요. assert test_problem_stack("()") assert test_problem_stack("()[]{}") assert test_problem_stack("({[][]})") assert test_problem_stack("({[]})") assert not test_problem_stack("(]") assert not test_problem_stack("(()]") assert not test_problem_stack("(((])") assert n.. 더보기
[Swift] Escaping closure 2024년 3월 15일 금요일 탈출 클로저(Escaping closure)를 활용해 보자. ※ 참고 : Closure ☑️ Escaping Closure 어떤 경우에 사용되는가? 1. 어떤 함수의 내부에 존재하는 클로저(함수)를 외부 변수에 저장하는 경우 2. 클로저가 메서드의 인자로 전달됐을 때, 메서드의 실행이 종료된 후 실행되는 클로저 (비동기) → 파라미터 타입 앞에 @escaping이라는 키워드를 명시해야 한다. 예) 비동기로 실행되거나 completionHandler로 사용된 클로저의 경우 클로저를 메서드의 파라미터로 넣을 수 있다. // 1) 외부 변수 저장 var defaultFunction: () -> () = { print("출력") } func escapingFunc(closure: .. 더보기
[Swift] 짝수의 합 (w/ Swift & Python) 언듯 굉장히 쉬운 문제라고 생각했는데 의외로 오래 고민했다.짝수를 만드는 반복문을 돌린 후 그 값들의 합을 구하는 방식으로 풀었는데 짝수를 만들기 위한 변수와 합을 구하는 변수를 따로 설정한다는 생각을 하지 못해 고민했다. 결과값을 만드는 변수를 어떻게 설정하고 시작하느냐는 언제나 문제의 핵심같다. + 코테를 풀때 answer로 리턴하는 변수, 특히 0으로 초기화하는 변수의 이름은 yeon으로 설정하기로 했다. 나만의 쓸데없는 시그니처? 짝수의 합 (shortcuts) language = swift import Foundation func solution(_ n:Int) -> Int { var i = 1 var yeon = 0 for i in 1...n { if i % 2 == 0 { yeon += i .. 더보기
[Swift] Thread, Asynchronous & Networking 2024년 3월 14일 화이트데이 스레드와 비동기에 대해 알아보고 비동기를 활용하여 서버로부터 데이터를 받아오는 네트워킹에 대해 공부합니다. ☑️ Thread 스레드(Thread)는 컴퓨터 프로세스 내에서 실행되는 실행 흐름의 단위. 프로세스는 운영체제로부터 자원을 할당받아 실행 중인 프로그램의 인스턴스를 나타내는데, 각 프로세스는 하나 이상의 스레드를 가질 수 있다. Swift에서의 스레드 종류 메인 스레드(Main Thread) - App의 주요 인터페이스 및 UI 업데이트를 담당하는 스레드. UI 요소의 변경은 메인 스레드에서 수행 백그라운드 스레드(Background Threads) - 메인 스레드 이외에 동시에 작업을 수행하기 위해 생성되는 스레드들을 일컫는다. 주로 작업을 분산하거나 병렬로 처.. 더보기
[Karel Čapek] 오른쪽 주머니에서 나온 이야기 3월의 첫 번째 책  ".. 하지만 사람들은 온갖 종류의 법과 규정을 위반하며 삽니다. 경찰 일을 하다보면 그런 걸 늘 보게 됩니다. 나는 설사 사람들이 자연의 법칙을 어긴다고 해도 놀라지 않을 겁니다. 인간이란 정말 어쩔 수 없는 존재들이거든요... "  정말 어쩔 수 없는 존재들.. 각 단편에서 다루는 사건들보다 더 흥미로운건 입체적인 인간이 가진 "다면성"이다. 읽는 사람의 내면에 따라 달라지겠으나 공통적으로 느끼게 되는 건 '나의 잣대로는 절대 인간을 단정지을 수 없다'는 것 아닐까. (단정지을 수 없음도 단정하지 말자.) 예측 불가하고 미스테리한 우리들. 이것이 이 소설을 관통하는 연결고리다.  보통의 미스테리물은 사소한 것이 엄청난 것으로 밝혀지며 반전을 주는 반면에 차페크의 단편은 엄청난 줄.. 더보기
[Algorithm] 중복된 숫자 개수 세기 (w/ Swift & Python) 배열에서 특정 요소의 개수를 구하는 방식에 대해 복습하는 알고리즘 문제이다. 이번 주에 개인 프로젝트로 진행하는 야구게임에도 사용되는 알고리즘이라서 골라보았다. 중복된 숫자 개수 세기 문제 설명 정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요. 제한사항 0 ≤ array의 길이 ≤ 100 0 ≤ array의 원소 ≤ 1,000 0 ≤ n ≤ 1,000 solution.swift func solution(_ array: [Int], _ n: Int) -> Int { return array.filter { $0 == n }.count } 매개변수 array는 배열타입의 [Int]이고, 매개변수 n은 정.. 더보기
[Algorithm] 피자 나눠먹기 #3 (w/ Swift & Python) #1에서는 1판에 7조각을, #2에서는 6조각으로 피자를 잘라주었던 머쓱이네 피자가게.. 이제 두 조각에서 열 조각까지 원하는 조각 수로 잘라 준다고 하는데.. 피자 나눠먹기 문제 설명 머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요 제한사항 2 ≤ slice ≤ 10 1 ≤ n ≤ 100 solution.swift import Foundation func solution(_ slice:Int, _ n:Int) -> Int { return ((n - 1.. 더보기
[Swift] Generic 함수, 타입, 데이터 구조에 대한 유연하고 추상적인 코드를 작성할 수 있게 해주는 기능. 다양한 타입에서 작동하도록 일반화된 코드를 작성할 수 있게 해주는 제네릭 을 공부해 봅니다. ☑️ Generic 제네릭은 실제 타입 이름을 써주는 대신에 placeholder를 사용한다. [ eg: T, V, U ] placeholder의 실제 타입은 함수가 호출되는 순간 결정된다. placeholder는 타입 매개변수로 쓰일 수도 있는데, 이 타입 매개변수는 함수를 호출할 때마다 실제 타입으로 치환된다. 하나의 타입 매개변수를 갖지 않고 여러 개의 타입 매개변수를 갖고 싶다면 홀화살괄호 기호 안쪽에 쉼표로 분리한 여러 개의 타입 매개변수를 지정해줄 수 있다. [ eg: ] 제네릭 타입을 구현하면 구조체, 클래스, .. 더보기