Stack 활용 LIFO 특성을 활용한 문제 DFS(깊이 우선 탐색)에 사용 예제 '(){}[]'를 포함하고 있는 문자열 s가 주어졌을 때, 괄호가 유효한지 아닌지 판별하라 제약조건 1
Algorithm
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가 있습니다..

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입니다. 이 문자열이 나..