BOJ 3

[BOJ] 2309번 "일곱 난쟁이" (C++/Swift)

2309번 일곱 난쟁이 그냥 9개의 숫자 중, 합이 100이 되는 7개의 숫자를 찾으라는 것이다. (스페셜 저지는 문제의 정답 조건을 만족하는 것들 중 아무거나 출력하는 문제임) 그냥 단순하게, 난쟁이가 겹치지 않게 (한 사람 두 번 세지 않도록) 정답 조건(7명이며, 키의 합이 100일 것)을 확인하는 재귀함수 돌렸다. for문 7개 쓸 순 없으니까.. ^^ (for문 7개 써도 된다,, 당연히 결과는 같음!!) C++ #include #include #include using namespace std; int height[9]; vector answer; void solve(int next_index, int count, int sum, vector list) { if(count==7 && sum==..

Algorithm 2022.08.06

[BOJ] 2798번 "블랙잭" (C++/Swift)

2798번 블랙잭 문제 다 읽을 필요도 없다. 카드를 고르는 것이기 때문에, 카드 세 장을 골랐을 때 세 장의 카드는 모두 달라야한다는 생각 하나만 가지고 브루트포스하게 문제를 풀면 된다. (숫자가 겹치면 안된다는 것이 아님) 간단히 3중 for문으로 해결 가능하다. 아래 코드에서처럼, O(n^3) 의 시간복잡도 내에 문제 해결 가능한데 주어진 n은 많아야 100개 최악의 경우에도 주어진 1초를 넘지 않는다. C++ #include #include using namespace std; int n,m,sum,ans; int arr[100]; int main() { cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false); cin>>n>>m; for(..

Algorithm 2022.08.06

[Swift] Swift로 Algorithm 풀기 - 1. Input

안녕하세요! 정말 오랜만에 글을 쓰는데, 딱 1년 전, 살짝 공부했던 Problem Solving.. 을 다시 공부해보려다가, 예전에 했던 개념은 Swift로 해보며 부족하다고 느꼈던 Swift에 대한 이해도도 늘려봄이 어떨까해서 쉬운 개념이겠지만 하나하나 글을 적어보려 합니다. PS에서 가장 기본이지만, iOS 개발을 하다 보면 console에서 input을 받을 일은 없었기에 input 받기부터 난관이었는데, 이것부터 정리해보며 하나하나 시작해보겠습니다! 파이팅 input 받는 방법 readLine() 이라는 메서드를 사용하여 조건을 입력받습니다. let input = readLine() 이렇게요. 하지만, 이렇게 볼 수 있듯이, optional형 String을 return하기 때문에, unwrapp..

Swift 2022.08.02