분류 전체보기
-
와일드카드 패턴Swift 2021. 5. 18. 15:07
안녕하세요. 그린입니다🟢 이번에는 와일드카드 패턴에 대해 알아보겠습니다🧑🏻💻 우선 패턴부터 어떤건지 알아보도록 하죠! 패턴(Pattern) : 단독 혹은 복합적인 값을 구조화하여 나타내는 것으로 코드에서 이러한 패턴을 찾도록 비교하는것을 패턴매칭이라 합니다. 패턴의 종류 1) 값 추출 및 무시하는 패턴 - 와일드카드, 바인딩, 튜플, 식별자 2) 패턴매칭을 위한 패턴 - 열거형 케이스, 타입캐스팅, 옵셔널, 표현 여기서 이번 포스팅에서는 값을 무시하는 패턴인 와일드카드 패턴에 대해 보겠습니다. 와일드카드 패턴(Wildcard Pattern) : _ 식별자를 사용하여 해당 위치에 어떤 값이 와도 무시하고 항상 실행되게 하는 패턴 코드를 통한 와일드카드 패턴 사용🖥 class WildCardPattern ..
-
음양 더하기Algorithm 2021. 5. 18. 10:11
아래 문제는 프로그래머스에서 제공하는 월간 코드 챌린지 시즌2 > 음양 더하기의 문제입니다🧑🏻💻 문제 제시 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. 제한사항 absolutes의 길이는 1 이상 1,000 이하입니다. absolutes의 모든 수는 각각 1 이상 1,000 이하입니다. signs의 길이는 absolutes의 길이와 같습니다. signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. 입출력 예 [4,7,12] [true,f..
-
스택CS(ComputerScience) 2021. 5. 18. 09:38
안녕하십니까. 그린입니다🟢 이번 포스팅에서는 스택에 대해 알아보고 Swift로 구현해보겠습니다🧑🏻💻 스택 : 후입선출 자료구조 (LIFO) -> 기능이 제한된 배열 (푸쉬/팝/픽의 세가지 역할밖에 못함) -> 순서가 중요할때 가장 뒤 순서의 데이터를 꺼냄으로 배열 크기와 상관없이 항상 O(1)의 시간 복잡도를 가짐 (배열보다 효율적) -> 중간 데이터 삭제 불가능 Swift로 스택 구현하기 import Foundation struct Stack { var stack: [T] = [] // 초기화 시 아무 값이 주어지지 않을때 동작하는 초기화 init() {} // 초기화 시 값이 주어질때 동작하는 초기화 init(_ element: [T]) { stack = element } // 데이터 저장 muta..
-
우선순위 큐CS(ComputerScience) 2021. 5. 17. 14:49
안녕하세요. 그린입니다🟢 이번 포스팅에서는 우선순위 큐를 Swift로 구현하는것에 대해 알아보겠습니다🧑🏻💻 먼저 우선순위 큐가 무엇인지? 간단히 알아보겠습니다! 우선순위 큐 : 우선순위를 가진 자료들의 큐로 순위가 높은 자료가 먼저 실행 (FIFO) -> 힙구조 -> 완전이진트리 (힙은 완전이진트리) -> 완전이진트리: 마지막 노드 레벨외 나머지 노드 레벨이 전부 채워진 형태의 이진트리 -> 힙활용: 최대,최소 계산 / 힙정렬(우선순위큐) -> 스위프트에서는 배열로 표현하는게 효율적 -> 노드 레벨이 올라갈수록 노드 수 2배씩 증가 -> 부모노드 i / 자식노드: 2i+1 / 2i+2 -> 트리는 O(log n) / 배열은 O(1) Swift 코드로 구현하기 import Foundation struct..
-
튜플Algorithm 2021. 5. 17. 12:06
아래 문제는 프로그래머스에서 제공하는 코딩테스트 > 2019 카카오 개발자 겨울 인턴십 > 튜플의 문제입니다🧑🏻💻 문제 제시 셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음을 튜플(tuple)이라고 합니다. n개의 요소를 가진 튜플을 n-튜플(n-tuple)이라고 하며, 다음과 같이 표현할 수 있습니다. (a1, a2, a3, ..., an) 튜플은 다음과 같은 성질을 가지고 있습니다. 중복된 원소가 있을 수 있습니다. ex : (2, 3, 1, 2) 원소에 정해진 순서가 있으며, 원소의 순서가 다르면 서로 다른 튜플입니다. ex : (1, 2, 3) ≠ (1, 3, 2) 튜플의 원소 개수는 유한합니다. 원소의 개수가 n개이고, 중복되는 원소가 없는 튜플 (a1, a2, a3, ...
-
JadenCase 문자열 만들기Algorithm 2021. 5. 11. 12:08
아래 문제는 프로그래머스에서 제공하는 코딩테스트 > JadenCase 문자열 만들기의 문제입니다🧑🏻💻 문제 제시 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 s는 길이 1 이상인 문자열입니다. s는 알파벳과 공백문자(" ")로 이루어져 있습니다. 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫번째 입출력 예 참고 ) 입출력 예 "3people unFollowed me" "3people Unfollowed Me" "for the last week" "For The Last Week" 문제 해결 func sol..
-
N개의 최소공배수Algorithm 2021. 5. 10. 18:55
아래 문제는 프로그래머스에서 제공하는 코딩테스트 > N개의 최소공배수의 문제입니다🧑🏻💻 문제 제시 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요. 제한 사항 arr은 길이 1이상, 15이하인 배열입니다. arr의 원소는 100 이하인 자연수입니다. 입출력 예 [2,6,8,14] 168 [1,2,3] 6 문제 해결 import Foundation f..
-
완전탐색 > 카펫Algorithm 2021. 5. 6. 19:56
아래 문제는 프로그래머스에서 제공하는 코딩테스트 > 완전탐색 > 카펫 (고득점 Kit)의 문제입니다🧑🏻💻 문제 제시 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow..