분류 전체보기
-
삼각 달팽이Algorithm 2021. 6. 3. 20:15
아래 문제는 프로그래머스에서 제공하는 월간 코드 챌린지 시즌1 > 삼각 달팽이의 문제입니다🧑🏻💻 문제 제시 정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 1,000 이하입니다. 입출력 예 4 [1,2,9,3,10,8,4,5,6,7] 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] 문제 해결 import Foundation enum Mov..
-
패턴매칭Algorithm 2021. 6. 2. 10:48
문제 제시 인자로 문자열 2개가 전달된다. 하나는 패턴을 나타내는 문자열이고 하나는 데이터를 담은 문자열이다. 데이터를 담은 문자열이 패턴과 일치하는지를 판별하는 메서드를 만드시오. 예시 func solution(_ pattern: String, _ data: String) -> Bool { ... } solution("abbaa", "dog cat cat dog dog") // true solution("xyxy", "one two two one") // false solution("cbac", "dog cat bird dog") // true 문제 해결 func solution(_ pattern:String, _ target: String) -> Bool { // 패턴과 데이터를 문자열로 변환 let..
-
Run LoopiOS 2021. 6. 1. 19:17
안녕하십니까. 그린입니다🟢 이번 포스팅에서는 Run Loop(런루프)에 대해 학습해보겠습니다🧑🏻💻 런루프.. 어디서 많이 보고 런루프의 이벤트 처리 그림도 봤었는데 막상 생각해보니 제대로 이해하고 있지 않더라구요. 그래서 이번 기회에 한번 파해쳐보겠습니다! Run Loop : 작업 스케쥴링과 전달된 이벤트를 처리하는 이벤트 처리 루프 : 런루프는 유저가 이벤트를 일으키고 그 이벤트들을 처리하는 프로세스 : 대표적으로 UIApplication이 메인 런루프를 뷰의 이벤트 및 업데이트를 처리해줄 때 활용 : 메인 런루프는 뷰와 관련 있기때문에 뷰하면 어디다..!? 메인 스레드에서 동작 : 런루프의 목적은 스레드에 작업이 있으면 하게하고 없으면 쉬도록 하는것에서 나옴 아래는 메인 스레드의 런루프 과정 동작을..
-
올바른 괄호Algorithm 2021. 5. 31. 16:09
아래 문제는 프로그래머스에서 제공하는 올바른 괄호의 문제입니다🧑🏻💻 문제 제시 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 문제 해결 import Foundation func soluti..
-
진수 변환Swift 2021. 5. 27. 11:29
안녕하세요. 그린입니다🟢 이번 포스팅에서는 Swift에서 진수 변환하는 방법에 대해 학습하겠습니다🧑🏻💻 진수란? 얼만큼의 수를 증가시킨 후 자릿수를 올릴 것인지에 대한 단위를 말합니다. 즉, 2진수는 2개의 수를 사용하고 8진수는 8개의 16진수는 16개의 수를 사용합니다. 잘 알고 계시겠지만 기본적으로 실생활에서는 10진수 즉 10개의 0~9까지의 수를 사용하여 나타냅니다. 그렇다면, 각 진수 표현이 다른데 왜 알아야 할까요? 특히 2진수는 컴퓨터가 나타낼 수 있는 수의 범위로 2진수를 10진수로 10진수를 2진수로 변환하는 방법과 이해하는것이 중요합니다. 대표적으로 가장 많이 사용되는 2진수, 8진수, 10진수, 16진수에 대해 알아보고 각 변환하는 방법에 대해 알아봅시다! // MARK: - 진수..
-
[1차] 비밀지도Algorithm 2021. 5. 27. 10:59
아래 문제는 프로그래머스에서 제공하는 2018 KAKAO BLIND RECRUITMENT > [1차] 비밀지도의 문제입니다🧑🏻💻 문제 제시 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백..
-
예상 대진표Algorithm 2021. 5. 26. 11:08
아래 문제는 프로그래머스에서 제공하는 2017 팁스다운 > 예상 대진표의 문제입니다🧑🏻💻 문제 제시 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N번의 참가자끼리 게임을 진행합니다. 각 게임에서 이긴 사람은 다음 라운드에 진출할 수 있습니다. 이때, 다음 라운드에 진출할 참가자의 번호는 다시 1번부터 N/2번을 차례대로 배정받습니다. 만약 1번↔2번 끼리 겨루는 게임에서 2번이 승리했다면 다음 라운드에서 1번을 부여받고, 3번↔4번에서 겨루는 게임에서 3번이 승리했다면 다음 라운드에서 2번을 부여받게 됩니다. 게임은 최종 한 명이 남을 때까지 진..
-
Deep copy & Shallow copySwift 2021. 5. 25. 17:47
안녕하세요. 그린입니다🟢 이번 포스팅에서는 Deep copy(깊은 복사)와 Shallow copy(얕은 복사)에 대해 학습해보겠습니다🧑🏻💻 본격적으로 알아보기전! 기본적으로 모든 데이터 타입은 값 혹은 참조 타입을 가지는건 알고 계시죠? 간단히 두 타입에 대해 설명해보자면, 값 타입으로 생성된 데이터는 각각 해당하는 메모리를 따로 소유합니다. 참조 타입으로 생성된 인스턴스는 주소를 공유하여 같은 주소를 참조한 값이 바뀌면 같이 변경됩니다. 이 두 차이를 통해 깊은 복사와 얕은 복사에 대해 어떨때 일어나고 어떻게 사용할지 알아봅시다👍🏻 Deep copy : 깊은 복사로 데이터를 그대로 복사하여 복사된 두 데이터 객체는 각각의 메모리를 가집니다. : 주로 기본적으로 값 타입의 객체들을 생성하면 깊은 복사로..