전체 글

문제 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수 solution을 작성하라. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하라. 제한사항 arr은 자연수를 담은 배열 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 이다. divisor는 자연수 array는 길이 1 이상인 배열 입출력 예 arr divisor return [5, 9, 7, 10] 5 [5, 10] [2, 36, 1, 3] 1 [1, 2, 3, 36] [3,2,6] 10 [-1] 풀이 return의 값이 숫자의 오름차순으로 정렬되어 있기 때문에 sorted() 함수로 배열 내 숫자들을 정렬시켜준다. func so..
문제 어떤 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어진다. 실제 정수들의 합을 구하여 return 하도록 함수를 완성하라 제한사항 absolutes의 길이는 1이상 1000이하 (absolutes의 모든 수는 각각 1이상 1000이하) signs의 길이는 absolutes의 길이와 같음. (signs[i]가 참이면 absolutes[i]의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미한다.) 입출력 예 absolutes signs result [4,7,12] [true,false,true] 9 [1,2,3] [false,false,true] 0 풀이 func solution(_ absolutes:[Int]..
문제 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가 있습니다..
빵판 AKA 브레드보드
BreadBoard's devlog