문제 solution 함수는 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 한다. 제한 조건에 만족하는 함수 solution을 완성하라 제한조건 x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. 입출력 예 x n answer 2 5 [2,4,6,8,10] 4 3 [4,8,12] -4 2 [-4, -8] 풀이 처음 코드에서 몇 줄 더 줄일 수 있으면 줄이는게 나을 것 같아서 삼항 연산자를 사용하여 풀이해보았다. func solution(_ x:Int, _ n:Int) -> [Int64] { var answer: [Int64] = [] for _ in 0.. [Int64] { var answer: [I..
문제 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가린다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성하라. 제한 조건 phone_number는 길이 4 이상, 20 이하인 문자열입니다. 입출력 예 phone_number return 01033334444 *******4444 02777888 *****888 풀이 enumerated() 메서드를 사용한 풀이입니다. 유저 이메일이나 휴대폰번호 마스킹 처리 할 때 자주 쓰여서 풀기 크게 어렵지는 않았지만.. 뭔가 세련된 풀이는 아닌 것 같아서 다른 분들 코드도 잘 분석해봐야겠네요. 생각해보니까 ..
Stack 활용 LIFO 특성을 활용한 문제 DFS(깊이 우선 탐색)에 사용 예제 '(){}[]'를 포함하고 있는 문자열 s가 주어졌을 때, 괄호가 유효한지 아닌지 판별하라 제약조건 1
Static Array(정적 배열) 배열의 특성 1. 고정된 저장 공간(fixed size) -> 고정된 사이즈를 갖기 때문에 Static Array라고 함. 2. 순차적인 데이터 저장(order) 3. 시간복잡도 배열변수는 자신이 할당받은 메모리의 첫번째 주소 값을 가리킴. 배열은 연속/순차적으로 저장되어 있기 때문에 첫 주소값만 알고 있다면 어떤 index로든 direct하게 접근이 가능함. (direct access = random access) int arr[5] = {2, 5, 3, 1, 3} 배열을 선언했을 경우, n번째 데이터는 0x6AF923 + 4*(n-1)에 저장되있을 것임. ex) int는 4byte 시간복잡도 : O(1)의 시간복잡도를 가짐. (한번의 연산으로 원하는 데이터에 바로 ..
문제 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 입출력 예 설명 입출력 예 #1 10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다. 입출력 예 #2 12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다. 입출력 예 n result 10 3 12 11 풀이 쉬운 문제라 비교적 빠르게 풀긴 했는데 최소공배수 개념 쓰려다 그냥 배열에 넣어서 최소값 찾자ㅋㅋ 라는 마인드로 풀어버렸네요.. 이..
문제 문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다. 예를 들어, s="banana"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다. b는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. a는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. n은 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. a는 자신보다 두 칸 앞에 a가 있습니다. 이는 2로 표현합니다. n도 자신보다 두 칸 앞에 n이 있습니다. 이는 2로 표현합니다. a는 자신보다 두 칸, 네 칸 앞에 a가 있습니다..
글 쓰는 재주가 없어 전부터 계속 회고 포스팅 쓰는 것을 미뤄왔다. 그러나 개발자 글쓰기의 중요성도 갈수록 높아지는 추세이니 연습 삼아 계속 써버릇해야겠다는 생각이 들었다. 본 포스팅의 주된 내용은 근 3년간 iOS 개발자로 일한 경력을 뒤로하고 8개월 동안 준비하여 4년제 컴공과 대학에 편입한 이야기와 그동안의 비하인드 스토리 등이 될 것이다. 5월 ~ 9월 3월에 퇴사 의향을 말씀드리고 업무 인수인계 문서 등을 준비하던 시기였다. 퇴사 후 설렘 반 걱정 반의 마음으로 주말 학원을 다니면서 2주간은 쉬기로 했다. 쉬는 동안 운전 연수를 받았는데 운전하는 폼이 살짝 불안해서 추가로 연수를 더 받았다. 추가 연수를 끝내고 용기를 내어 혼자 차를 끌어보았다. 그 이후부터는 차량 대여 서비스를 이용하여 홀로 ..
Swift에서는 다른 언어에서처럼 String형에서 Index에 Int로 접근할 수 없다. String 인덱스 값에 Int가 아닌 인덱스 자료형이 위치해 있어(Swift에서 String은 Reference Typed이 아닌 Value Type이기 때문이라고 한다.) Substring 사용이 꽤 번거롭고 귀찮기는 하다. 문제 숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요. 예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나..