반응형 코딩 테스트9 [코딩테스트] 배열에서 원소 삭제하기(.feat C) 귀중한 토요일 오후 시간을 바쳐서 4시간짜리 문제를 풀고 왔습니다. 1년 째 두달마다 한 번씩 시험을 치르고 있는데, C언어는 안쓰다보니 생각보다 구현에 시간이 많이 소요됩니다. 이번 시험에서는 이중 배열에서 원소를 삭제하려는데, 원하는 대로 동작하지 않아서... 그거 잡다가 시간을 다 날렸네요.. 관련해서 이번 글은 아래와 같이 작성해보겠습니다. 1. 일차원 배열에서의 원소 삭제 2. 이차원 배열에서의 원소 삭제 일차원 배열에서의 원소 삭제 - 해당 원소 이후의 원소를 한 칸씩 당기기 - 배열의 크기 업데이트 #include #define ARRSIZE 10 // dIdx위치의 element를 지운다. void deleteElementOneD(int arr[], int dIdx, int arrSize).. 코딩 테스트 2024. 2. 4. [코딩테스트] Quick Sort(.feat C) C언어로 하고 싶지는 않지만, 회사에서 C언어로만 코딩 테스트를 볼 수 있어서 quicksort를 C언어로 구현해보겠습니다. Quicksort특징 분할정복(divide and conquer) 알고리즘의 하나로, 일반적인 경우 빠르게 정렬할 수 있는 알고리즘입니다. 일반적인 경우의 시간복잡도는 O(nlogn), 최악의 경우에는 O(n^2)입니다. * 일반적인 경우 quicksort 진행 횟수가 logn번이며, 각 알고리즘 당 Left, Right Pointer움직이는 데 n번이 소요되므로 nlogn입니다. * 최악의 경우는 거꾸로 배치 된 경우로, pivot에 의해서 divide되는 덩어리가 없는 경우입니다. Quicksort알고리즘 pivot을 기준으로 왼쪽은 pivot보다 작은 숫자, 오른쪽은 pivo.. 코딩 테스트 2024. 2. 3. [LeetCode] 3. Longest Substring Without Repeating CharactersMedium - Medium https://leetcode.com/problems/longest-substring-without-repeating-characters/description/ Longest Substring Without Repeating Characters - LeetCode Longest Substring Without Repeating Characters - Given a string s, find the length of the longest substring without repeating characters. Example 1: Input: s = "abcabcbb" Output: 3 Explanation: The answer is "abc", with the length of 3. Example 2: In.. 코딩 테스트 2023. 2. 15. [LeetCode] 2. Add Two Numbers - Medium Medium이라지만 오히려 쉬운듯 하다. 시각화? 가 잘 되어 있어서 문제 이해는 어렵지 않다. 문제 설명 one way의 linkedList가 아래와 같이 정의되어 있다. 순서대로 2,4,3-> 342 5,6,4-> 465 를 의미하며 342+465 = 807을 마찬가지의 형태인 7,0,8을 나타내는 listNode로 리턴해야 한다. 문제 풀이 딱히 풀이라고 할 것도 없다. 10이 넘어가는 경우데 대해서만 잘 처리해주면 된다. 처음에는 isOverTen이라는 boolean을 선언하여 코드를 짰는데, 그보다는 int over 을 정의하여 이전 두 수의 합이 10이 넘을 경우 1, 아니면 0을 담도록 했다. /** * Definition for singly-linked list. * public class.. 코딩 테스트 2023. 2. 15. [LeetCode] 1. Two Sum - Easy 처음 이 문제를 보고 비웃었다. 시간 복잡도 O(n^2)방법은 쉽게 생각해냈지만, 더 나은 방법은 찾아낼 수 없었다. 다른 사람의 솔루션을 보고 O(nlogn)까지 가능하다는 것을 알게 되었다. + HashMap을 사용할 경우 O(n)까지 가능... 심지어 쉬움. 쉬운 문제에서도 배울 점이 있구나... 문제 설명 문제는 간단하다. input : nums = [2,7,11,15], target = 9 output : [0,1] input으로는 정수 배열과, target 숫자가 들어온다. 이 때, 정수 배열에서 서로 다른(index가 다른) 두 원소의 합이 target이 되는 index 배열을 리턴하는 것이다. 제약사항은 아래와 같다. 2 코딩 테스트 2023. 2. 15. [프로그래머스] 디스크 컨트롤러 회사에서 코드를 짤 때는 주로, Comparable을 구현해서 활용하거나 Comparator를 생성했다. 다른 코드를 보니까 ㅜ 부족함이 많이 느껴진다. 풀이 - 작업 요청 시간이 지난 작업 중, 작업 시간이 짧은 것부터 처리하도록 한다. -> 작업 시간을 기준으로 우선순위 큐 사용. (대기하는 작업들의 대기 시간을 줄인다는 느낌) 개선점 1. 굳이 객체를 생성할 필요는 없었다. 개선점 2. compare 및 sorting 시에 람다 함수 활용. 더보기 나의 풀이... import java.util.PriorityQueue; import java.util.Comparator; class Solution { public int solution(int[][] jobs) { int size = jobs.len.. 코딩 테스트 2023. 2. 10. [코딩테스트] 프로그래머스 : 주식가격 문제 설명 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. [1, 2, 4, 3, 2] ->[4, 3, 1, 1, 0] 3초-> 4초 : 주식의 가격이 4-> 3으로 떨어진다. 즉, 1초간은 떨어지지 않았다고 볼 수 있으므로 1 4초-> 5초 : 3-> 2 => 1 [1, 5, 9, 3, 1] ->[4, 2, 1, 1, 0] 2초-> 4초 : 주식 가격 5-> 9-> 3, 즉, 2초간은 떨어지지 않았으므로 2 def solution(prices): answer = [] for i, j in enumerate(prices): ans = 0 for k in range(i+1, len(.. 코딩 테스트 2022. 12. 5. [코딩테스트] 프로그래머스 : 프린터(python) 문제 설명 프린터에서 지정한 작업이 몇번째로 출력되는지 알아내야한다. 리스트에서 가장 큰 숫자가 먼저 프린트 되고 하나씩 왼쪽으로 밀린다. 먼저, 현재 List에서 최대값을 알아내야한다. 이를 위해 max라는 함수를 구현. list를 받아서 max값을 리턴한다. 시간복잡도는 O(n) def max(lst): mx=0 for i in lst: if(i>mx): mx=i return mx 1) pop하는 요소의 값이 max이면 출력한다. 2) 해당 값이 우리가 출력하고 싶은 값(location)이라면, 결과(answer)를 출력하고 종료한다. 3) pop한 값이 max가 아니라면 --> 오른쪽 끝에 더하여 준다. def solution(priorities, location): answer=0 val = pr.. 코딩 테스트 2022. 11. 30. [코딩테스트] 프로그래머스 : 위장, Counter 사용법 의상의 조합을 찾는 문제. 상의 : 셔츠, 티, 아우터 하의 : 바지, 치마, 칠부 와 같이 있다면, 총 조합의 수는 ('상의 수'+1) * ('하의 수' + 1) -1 현재 python의 문법을 잘 모르기에 차근차근 풀어보았다. 매우 쉽긴하다.. 먼저, dict에 list로 담아서 풀어 보았다. def solution(clothes): size = len(clothes) dict = {} for i in range(size) : clothe = clothes[i] if clothe[1] in dict: dict[clothe[1]].append(clothe[0]) else: dict[clothe[1]] = [clothe[0]] answer = 1 for key in dict: print(dict[key].. 코딩 테스트 2022. 11. 30. 이전 1 다음 반응형