전체 글(38)
-
[Swift - 프로그래머스] 가장 큰 정사각형 찾기
🕵🏻 문제 해석 1과 0으로 채워진 표가 주어지면 그 표에서 1로 이루어진 가장 큰 정사각형의 넓이를 반환하는 문제입니다. 단, 정사각형은 축과 평행해야 합니다. 예시로 주어진 4 X 4의 표에서는 가장 큰 정사각형의 넓이가 9가 되겠습니다. 제한사항 표(board)는 2차원 배열로 주어집니다. 표(board)의 행(row)의 크기 : 1,000 이하의 자연수 표(board)의 열(column)의 크기 : 1,000 이하의 자연수 표(board)의 값은 1 또는 0으로만 이루어져 있습니다. 먼저 가장 작은 크기의 정사각형으로 부터 크기를 확장하며 문제에 접근해보겠습니다. 가장 작은 크기의 정사각형은 1 X 1 크기의 1로 이루어진 정사각형이겠죠? 그다음 크기의 정사각형은 2 X 2의 1로 이루어진 정사각..
2021.05.22 -
[Swift - 프로그래머스] N개의 최소공배수 구하기
문제 해석 N개의 숫자를 담은 배열이 주어졌을 때 이 수들의 최소 공배수를 구하는 함수를 작성하는 문제였습니다. 배열의 수들은 100 이하인 자연수이고 배열의 길이는 1부터 15 이하라고 합니다. 여러 수의 최대 공배수를 구하기 위해 먼저 두 수의 최대 공배수를 구하는 방법에 대해 알아봅시다. 두 수 a, b의 최소공배수는 두 수의 곱을 두 수의 최대 공약수로 나누어 주어서 구할 수 있다는군요. 두 수의 최대 공약수는 유클리드 호제법을 이용하여 쉽게 구할 수 있습니다. 이를 이용하여 배열의 첫 번째 원소와 두 번째 원소의 최소 공배수를 구하고 구한 최소 공배수와 그다음 원소와의 최소공배수를 비교하여 전체 N개의 수의 최소 공배수를 구하는 방식으로 문제를 해결할 수 있습니다. 더 생각해보기 주어진 배열에서..
2021.05.20 -
[Swift - 프로그래머스] 배달
문제 해석 1번 마을에 있는 음식점에서 N개의 마을에 배달을 하려고 합니다. 각 마을들 사이에는 양방향 도로가 존재하는데 도로 마다 지나는 시간이 존재합니다. 주어진 도로 데이터를 이용하여 각 마을까지의 최단 거리를 구하고 1번 마을 부터 각 마을 까지의 거리가 k 이하인 마을들의 개수들을 구하는 문제입니다. 단일 출발지에서 가장 짧은 경로를 찾고 각 마을 까지의 거리는 양수이므로 다익스트라 알고리즘을 활용하여 각 마을까지의 최단거리를 구한 후 k값 이하의 마을들의 개수를 구하여 문제를 해결합니다. 문제 풀이 & 코드 import Foundation func solution(_ N:Int, _ road:[[Int]], _ k:Int) -> Int { // 1번 마을로 부터 각 마을까지의 최단 거리를 갱신..
2021.05.19 -
[Swift - 프로그래머스] 뉴스 클러스터링
문제 해석 Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브는 뉴스 검색 문제점 개선을 업무를 맡았다고 합니다. 사용자에게 더욱 다양하고 편리한 검색 결과를 제공하기 위해 자카드 유사도를 활용하여 유사한 기사들을 묶어 제공해보기로 했습니다. 자카드 유사도는 집합 간의 유사도를 검사하는 방법으로 두 집합간의 교집합의 크기를 두 집합간의 합집합의 크기로 나눈 값을 의미합니다. 이 자카드 유사도를 원소의 중복을 허용하는 다중집합에서 확장시키게 되면 교집합은 두 집합 모두 포함하는 원소를 최소 개수만큼을 포함하고 합집합은 두 집합에서 포함하는 원소를 최대 개수만큼을 포함합니다. 예를 들어 두 다중집합 A = { "AA", "AA", "AA", "BB"} , B = {"AA", "AA"} 가 있다고 해봅시다. ..
2021.05.19 -
[iOS & Swift 5.3+] @main : type기반의 프로그램 진입점
iOS 프로젝트를 처음 생성하면 자동으로 생성되는 몇 가지 파일이 있죠? 그 중에서 "AppDelegate.swift"는 AppDegate 클래스를 정의하고 앱이 시작되는 진입점을 알려주고 앱의 입력이벤트를 전달하는 런루프를 생성하는 역할을 합니다. 이 AppDelegate의 역할을 이해하려고 블로그글을 참고하는 과정에서 Swift가 5.3버전으로 업데이트 되면서 프로그램의 entry point를 알려주는 속성이 @UIApplicationMain에서 @main으로 변경된 것을 알게되었습니다. 해당 사항은 Xcode 12부터 적용이 되었죠! 그래서 이번 포스팅을 통해 해당 내용을 공부하면서 배운 것들을 정리해보고자 합니다. 해당 변경 사항은 Apple의 swift-evolution 레포지토리에 2020년 ..
2021.04.01 -
[Swift 문법] 09. Swift의 조건문과 범위연산자를 배워보자.
해당 글은 야곰님의 스위프트 강의와 개인적인 공부를 정리한 글입니다. 이번 포스팅에서는 Swift의 조건문과 반복문에 대해서 알아보겠습니다! 1. 조건문 1. 1. if else 구문 Swift의 if else 구문은 다른 언어와 비슷한 형태를 띠지만 조건을 감싸는 소괄호가 선택사항이라는 것과 조건이 무조건 Bool Type이여야 한다는 것이 가장 큰 특징입니다. if 단독으로 사용 가능하며 if, else if, else 순으로 조건을 체크하고 true를 만나면 해당 문장을 실행하고 구문을 빠져나옵니다. 기본 형태 // if else 기본형태 if 조건문 { 실행구문1 } else if 조건문 { 실행구문2 } else { 실행구문3 } 1. 2. switch 구문 눈 여겨보아야 할 것은 이 switc..
2021.01.16