- 프로그래머스 - 푸드 파이트 대회 Swift 문제 설명수웅이는 매달 주어진 음식을 빨리 먹는 푸드 파이트 대회를 개최합니다. 이 대회에서 선수들은 1대 1로 대결하며, 매 대결마다 음식의 종류와 양이 바뀝니다. 대결은 준비된 음식들을 일렬로 배치한 뒤, 한 선수는 제일 왼쪽에 있는 음식부터 오른쪽으로, 다른 선수는 제일 오른쪽에 있는 음식부터 왼쪽으로 순서대로 먹는 방식으로 진행됩니다. 중앙에는 물을 배치하고, 물을 먼저 먹는 선수가 승리하게 됩니다.이때, 대회의 공정성을 위해 두 선수가 먹는 음식의 종류와 양이 같아야 하며, 음식을 먹는 순서도 같아야 합니다. 또한, 이번 대회부터는 칼로리가 낮은 음식을 먼저 먹을 수 있게 배치하여 선수들이 음식을 더 잘 먹을 수 있게 하려고 합니다. 이번 대회를 위해 수웅이는 음식을 주문했는데, 대회의 조건을 .. 2025.05.20
- 프로그래머스 - 카드 뭉치 Swift 문제 설명코니는 영어 단어가 적힌 카드 뭉치 두 개를 선물로 받았습니다. 코니는 다음과 같은 규칙으로 카드에 적힌 단어들을 사용해 원하는 순서의 단어 배열을 만들 수 있는지 알고 싶습니다.원하는 카드 뭉치에서 카드를 순서대로 한 장씩 사용합니다.한 번 사용한 카드는 다시 사용할 수 없습니다.카드를 사용하지 않고 다음 카드로 넘어갈 수 없습니다.기존에 주어진 카드 뭉치의 단어 순서는 바꿀 수 없습니다.예를 들어 첫 번째 카드 뭉치에 순서대로 ["i", "drink", "water"], 두 번째 카드 뭉치에 순서대로 ["want", "to"]가 적혀있을 때 ["i", "want", "to", "drink", "water"] 순서의 단어 배열을 만들려고 한다면 첫 번째 카드 뭉치에서 "i"를 사용한 후 두 번.. 2025.05.19
- 프로그래머스 - 달리기 경주 Swift 문제 설명얀에서는 매년 달리기 경주가 열립니다. 해설진들은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부릅니다. 예를 들어 1등부터 3등까지 "mumu", "soe", "poe" 선수들이 순서대로 달리고 있을 때, 해설진이 "soe"선수를 불렀다면 2등인 "soe" 선수가 1등인 "mumu" 선수를 추월했다는 것입니다. 즉 "soe" 선수가 1등, "mumu" 선수가 2등으로 바뀝니다.선수들의 이름이 1등부터 현재 등수 순서대로 담긴 문자열 배열 players와 해설진이 부른 이름을 담은 문자열 배열 callings가 매개변수로 주어질 때, 경주가 끝났을 때 선수들의 이름을 1등부터 등수 순서대로 배열에 담아 return 하는 solution 함수를 완성해주세요.제한사항5 ≤ pla.. 2025.05.18
- 개발자라면 꼭 알아야 할 시간복잡도 ⏱ 시간 복잡도란?시간 복잡도는 입력 크기(n)가 커질 때, 알고리즘이 얼마나 많은 연산을 수행하는지를 나타냅니다.배열에서 숫자 하나를 찾을 때 → 빠를까? 느릴까?이중 반복문이 들어가면 → 얼마나 느려질까?🅾️ Big-O 표기법이란?Big-O 표기법은 시간 복잡도를 표현하는 대표적인 방식입니다.O(1)상수 시간딕셔너리 조회, 배열 인덱싱O(log n)로그 시간이진 탐색O(n)선형 시간배열 순회O(n log n)로그 선형 시간퀵정렬, 병합정렬O(n²)이차 시간중첩 반복문 📚 대표적인 시간 복잡도 종류✅ O(1) — 상수 시간실행 시간이 입력 크기와 무관합니다.예시: dict["key"] 딕셔너리에서 값 조회✅ O(n) — 선형 시간데이터 수가 많아질수록 비례하여 연산 시간이 증가합니다.예시: 배열 전.. 2025.05.18
- RxSwift - bind vs subscribe 1. bind (바인딩)bind는 주로 UI 컴포넌트와 데이터를 연결할 때 사용됩니다. bind는 UI와 비즈니스 로직을 분리하면서, 데이터가 변경될 때 UI가 자동으로 업데이트되도록 합니다. bind는 Observable을 UI 컴포넌트에 연결할 때 유용합니다. closeButton.rx.tap .bind { [weak self] in self?.dismiss(animated: true, completion: nil) } .disposed(by: disposeBag)위 코드에서 bind는 closeButton.rx.tap 이벤트를 구독하고, 해당 버튼을 탭했을 때 dismiss 메서드를 호출하는 방식으로 동작합니다. bind는 UI 이벤트가 발생했을 때 실행할 동작을 바인딩.. 2025.05.01
- 백준/1577/도로의 개수/Python https://www.acmicpc.net/problem/1577문제세준이가 살고 있는 도시는 신기하게 생겼다. 이 도시는 격자형태로 생겼고, 직사각형이다. 도시의 가로 크기는 N이고, 세로 크기는 M이다. 또, 세준이의 집은 (0, 0)에 있고, 세준이의 학교는 (N, M)에 있다.따라서, 아래 그림과 같이 생겼다.세준이는 집에서 학교로 가는 길의 경우의 수가 총 몇 개가 있는지 궁금해지기 시작했다.세준이는 항상 최단거리로만 가기 때문에, 항상 도로를 정확하게 N + M개 거친다. 하지만, 최근 들어 이 도시의 도로가 부실공사 의혹으로 공사중인 곳이 있다. 도로가 공사 중일 때는, 이 도로를 지날 수 없다.(0, 0)에서 (N, M)까지 가는 서로 다른 경로의 경우의 수를 구하는 프로그램을 작성하시오... 2024.08.20