분류 전체보기
-
실패율Algorithm 2021. 5. 24. 10:58
아래 문제는 프로그래머스에서 제공하는 2019 KAKAO BLIND RECRUITMENT > 실패율의 문제입니다🧑🏻💻 문제 제시 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어..
-
짝지어 제거하기Algorithm 2021. 5. 21. 10:27
아래 문제는 프로그래머스에서 제공하는 2017 팁스다운 > 짝지어 제거하기의 문제입니다🧑🏻💻 문제 제시 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa → 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 제한사..
-
연결 리스트CS(ComputerScience) 2021. 5. 20. 12:02
안녕하세요. 그린입니다🟢 이번 포스팅에서는 연결 리스트에 대해 알아보고 Swift로 구현해보겠습니다🧑🏻💻 연결리스트 : 이전 / 다음의 올 값의 참조 정보 가지는 배열의 형태 - 물리적 순서가 순차적이지 않음 - 한번에 찾는 데이터에 접근 불가 - 데이터 삽입 및 삭제 시 이동 없이 참조 값 변경만 해주면되서 배열보다 쉬움 (속도가 빠름) - 노드와 데이터로 구성 - 노드에는 다음 주소를 나타내는 포인터를 지님 - 검색 속도가 느리고 저장 공간 효율성이 떨어짐 Swift로 단방향 연결 리스트 구현하기 import Foundation // 노드 정의, Node의 값인 value와 다음 노드의 주소를 가진 next class Node { var data: T? var next: Node? init(data..
-
피보나치 수Algorithm 2021. 5. 20. 11:01
아래 문제는 프로그래머스에서 제공하는 피보나치 수의 문제입니다🧑🏻💻 문제 제시 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 제한 사항 * n은 1이상, 100000이하인 자연수입니다. 입출력 예 3 2 5 5 피보나치수는 0번째부터..
-
야곰 아카데미 캠프 회고회고 2021. 5. 19. 17:18
안녕하세요. 그린입니다🟢 이번에는 학습에 대한 부분말고 여태까지 6개월 동안 야곰 아카데미에서 캠퍼 생활에 대해 회고 해보려고 합니다🐻 야곰 아카데미? 처음 iOS 개발자로 전향하고자 마음 먹었을때 보다 더 넓은 시야와 다른 개발자들과 소통을 통해 배워가고 싶었습니다. 그러던 중 iOS 분야에서 네임드인 야곰을 접하게 되었고 뭔가 야곰에게 배우고싶다라는 생각이 뇌리를 스쳤습니다⚡️ 패스트캠퍼스, 바닐라코딩, 부스트캠프 등등... 정말 많은 개발을 배울 수 있는 아카데미가 많았는데 야곰이 이번에는 직접? iOS 부분을 교육하고자 야곰 아카데미에서 1기를 모집한다는걸 봤습니다! 이건 진짜 기회다!! 라는 생각이 강해 바로 신청을 하고 사전과제와 면접을 통해 야곰 아카데미 1기에 합류하게 되었습니다🙋🏻♂️ ..
-
패턴 (식별자, 값 바인딩, 튜플)Swift 2021. 5. 19. 16:35
안녕하세요. 그린입니다🟢 이번 포스팅에선 저번 와일드 패턴에 이어 값을 추출하거나 무시하는 패턴의 나머지 3개에 대해 알아보겠습니다🧑🏻💻 식별자 패턴 (Identifier Pattern) : 변,상수의 네이밍에 해당하는 값을 매칭시키는 패턴 let name: String = "GREEN" 네임이라는 상수가 그린이라는 문자열 값의 식별자가 됩니다. 때에 따라 식별자 패턴이 값 바인딩 패턴의 한 종류가 되기도 합니다. 값 바인딩 패턴 (Value-Binding Pattern) : 변,상수의 네이밍에 매칭된 값 바인딩 let person = ("GREEN", 10) switch person { case let (name, age): print("\(name), \(age)") } switch person {..
-
큐 (Queue)CS(ComputerScience) 2021. 5. 19. 14:26
안녕하십니까. 그린입니다🟢 이번 포스팅에서는 스택과 반대되는 큐에 대해 알아보겠습니다🧑🏻💻 큐(Queue) : FIFO(선입선출) 방식의 자료구조로 쉽게 생각하면 대기열의 순서에 많이 활용됩니다. -> 스위프트에서는 큐 자료구조가 따로 없기에 직접 만들어서 구현해야 합니다. 큐를 구현하기 위한 4가지 방법 1) 배열 1개를 사용한 큐 구현 : 큐에 데이터를 추가 시 O(1)의 시간복잡도를 가져 편리하지만 대신 큐에서 데이터를 추출 시 이전 데이터들을 전부 위치를 이동시킴으로 O(n) 시간복잡도를 가집니다. 비효율적입니다. 2) 연결 리스트를 사용한 큐 구현 3) 배열 2개를 사용한 큐 구현 : 추가되는 큐와 삭제될 큐(반대 큐)의 배열 2개를 생성하여 기능을 시켜줍니다. 그럴경우 팝과 푸시 모두 O(1..
-
내적Algorithm 2021. 5. 19. 13:35
아래 문제는 프로그래머스에서 제공하는 월간 코드 챌린지 시즌1 > 내적의 문제입니다🧑🏻💻 문제 제시 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요.제한사항 a, b의 길이는 1 이상 1,000 이하입니다. a, b의 모든 수는 -1,000 이상 1,000 이하입니다. 입출력 예 [1,2,3,4] [-3,-1,0,2] 3 [-1,0,1] [1,0,-1] -2 입출력 예 설명입출력 예 #1 a와 b의 내적은 1*(-3) + 2*(-1) + 3*0 + 4*2 = 3 입니다. 입출력 예 #2 a와 b의 내적은 (-1)*1 + 0*0 + 1*(-1) = -2 입니다. 이때, a와 b의 내적은 a[0]*b[0] + a[..