👨🏻‍💻iOS 공부/Swift_알고리즘 풀이

    [프로그래머스] 네트워크

    https://programmers.co.kr/learn/courses/30/lessons/43162?language=swift# 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 네트워크 간에 연결이 되어 있는지, 연결된 망이 총 몇 개인지 구하면 되는 문제이다. 문제의 카테고리도 BFS/DFS이기에 두 알고리즘을 이용해서 풀이를 하면 되겠다. Set의 intersection을 활용해서도 풀 수 있겠으나, BFS/DFS 문제인 만큼 한 번 충실해보자! 문제를 보고 대략적으로 그렸던 그림은 다음과 같다. ..

    [프로그래머스] 소수 찾기

    https://programmers.co.kr/learn/courses/30/lessons/42839?language=swift 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 주어진 수의 경우의 수를 모두 구하고, 해당 수가 소수인지 카운트하여 총 개수를 반환하면 되는 문제 즉 "소수를 찾는 것", "조합"을 구현하는 것이 주 목적인 문제이다. 조합은 이전 후보키 문제에서도 했지만, 이번에는 순서가 뒤바뀌어도 되는 조합을 구해야한다. 즉 [A,B]와 [B,A]는 다르다는 것이다. 이 때문에 조..

    [프로그래머스] 후보키 (with Combination)

    https://programmers.co.kr/learn/courses/30/lessons/42890 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr 우선 swift에는 combination 내장함수가 없다... 최근에 Swift Algorithm이라고 해서 패키지가 나왔다고는 하지만 코테 환경에서는 사용이 어려운 것 같다. 파이썬은 있던데... 아쉽지만 이번 기회에 combiantion..

    [LeetCode] Maximum Subarray

    https://leetcode.com/explore/featured/card/top-interview-questions-easy/97/dynamic-programming/566/ Explore - LeetCode LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore. leetcode.com [Dynamic Programming] 주어진 배열에서 연속된 subarray를 추출하여 나올 수 있는 합의 최댓값을 구하는 문..

    [프로그래머스] 가장 큰 수

    https://programmers.co.kr/learn/courses/30/lessons/42746?language=swift 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 주어진 수를 조합하여 가장 큰 수를 만들어 내는 것이 목표이다. 정렬을 우선적으로 해야하는 것은 알았는데 비교를 하며 정렬하는 방법을 구현해내지 못했었다. 그래서 한참을 고민하다가 여러 블로그, 답안들을 보고 깨우쳤다...! 처음에는 두 자리 이상의 수를 한 자리까지 내려..

    [프로그래머스] 카펫

    https://programmers.co.kr/learn/courses/30/lessons/42842?language=swift# 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 카펫의 테두리 개수와 전체 - 테두리 개수를 알 때, 직사각형의 크기를 구하는 문제이다. 예를 들어 brown = 10, yellow = 2이 주어졌을 때, [4x3] 이라고 출력할 수 있어야 한다. (조건. 가로의 길이가 세로의 길이보다 크거나 같다.) 문제는 완전 탐색이지만, 수학적으로 접근해볼 수 있을 것 같았다. 즉 테두리..