알고리즘 & 자료구조

    [al.go] #.42748 - K번째수 [프로그래머스]

    K번째수 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한 사항 array의 길이는 1 이상 100 이하..

    [al.go] #.42862 - 체육복 [프로그래머스]

    체육복 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution..

    [al.go] #.42840 - 모의고사 [프로그래머스]

    모의고사 문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution ..

    C언어로 자료구조 만들기 - 트리(BST, Binary Search Tree)

    이번에는 나를 가장 화나게 했던 트리를 만들어보고자 한다. 무슨 욕심으로 트리까지 만들려고 했는지는 모르겠지만, 어쨌거나 구현은 어느정도 되었으니까 다행이다. 여러 번 포기할 뻔 했다. 다른 부분보다도 특히 트리의 삭제부분에서 큰 문제를 겪었기 때문에 이번 포스트는 다소 화가 섞여있을지도 모른다. 트리(Tree) 구현해두었던 트리는 이진 탐색 트리(BST, Binary Search Tree)다. 이진 트리이므로 자식을 두 개씩 가질 수 있다. BST 의 경우, 부모 노드를 기준으로 값이 큰 것은 오른쪽에, 값이 작은 것은 왼쪽에 자리한다. Tree 트리는 일단 기본적으로 루트 노드가 필요하기 때문에 루트 노드 만큼은 구조체 안에다가 넣어두자. 그런데 아래의 코드 에서 _searchStack 은 어디에 쓰..

    C언어로 자료구조 만들기 - 큐(Queue), 스택(Stack)

    자, 지난 포스트에서 구현한 링크드 리스트를 기반으로 큐, 스택을 만들어보자. 링크드 리스트에서 대부분 구현이 되었기 때문에 설명할 내용은 많이 없다. 큐와 스택 둘 다 순회는 지원하지 않을 것이며 검색도 지원하지 않고 삽입과 삭제에 대한 것만이 존재한다. https://pronist.tistory.com/76 C언어로 자료구조 만들기 - 링크드 리스트(Linked List) 이번에는 지난 포스트에 이어서 C언어로 자료구조를 구현해볼 텐데, 이번에는 링크드 리스트다. 양 옆으로 삽입과 삭제가 가능한 양방향 링크드 리스트를 구현하고, 또한 중간에 데이터를 삽입 pronist.tistory.com https://github.com/pronist/Data-Structure-In-C pronist/Data-St..