시작!(184)
-
LeetCode - 876. Middle of the Linked List
Given the head of a singly linked list, return the middle node of the linked list. If there are two middle nodes, return the second middle node. Example 1: Input: head = [1,2,3,4,5] Output: [3,4,5] Explanation: The middle node of the list is node 3. Example 2: Input: head = [1,2,3,4,5,6] Output: [4,5,6] Explanation: Since the list has two middle nodes with values 3 and 4, we return the second on..
2022.07.16 -
LeetCode - Reverse Words in a String III
허잉 ㅜㅜ Given a string s, reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order. Example 1: Input: s = "Let's take LeetCode contest" Output: "s'teL ekat edoCteeL tsetnoc" Example 2: Input: s = "God Ding" Output: "doG gniD" Constraints: 1
2022.07.16 -
LeetCode 189. Rotate Array
Given an array, rotate the array to the right by 'k' steps, where 'k' is non-negative. Ex 1) Input: nums = [1,2,3,4,5,6,7], k = 3 Output: [5,6,7,1,2,3,4] Explanation: rotate 1 steps to the right: [7,1,2,3,4,5,6] rotate 2 steps to the right: [6,7,1,2,3,4,5] rotate 3 steps to the right: [5,6,7,1,2,3,4] Ex 2) Input: nums = [-1,-100,3,99], k = 2 Output: [3,99,-1,-100] Explanation: rotate 1 steps to ..
2022.07.08 -
LeetCode - 704. Binary Search
역쉬.... 사람은 공부를 계속 해야합니다 ... 허허허 이런 문제 하나 맞추거 겁나 좋아하는 나라니 여태 뭘한건가요 ~ ㅠㅠ https://leetcode.com/problems/binary-search/ Binary Search - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 요 문제 ! E-Z ~ int search(int* nums, int numsSize, int target){ int mid = 0; mid = numsSize>>1; if(targe..
2022.07.07 -
qsort - Quick sort in c
stdlib.h 에서 지원하는 qsort 가 있다고한다.. 난 여태... 뭘 배운거죠 ...? 허허... #include #include // qsort 함수가 선언된 헤더 파일 int compare(const void *a, const void *b) // 오름차순 비교 함수 구현 { int num1 = *(int *)a; // void 포인터를 int 포인터로 변환한 뒤 역참조하여 값을 가져옴 int num2 = *(int *)b; // void 포인터를 int 포인터로 변환한 뒤 역참조하여 값을 가져옴 if (num1 num2) // a가 b보다 클 때는 return 1; // 1 반환 return 0..
2022.07.05 -
백준 2579 - 계단 오르기
간단한..... dp 문제구나 ..... ^^... ㅠㅠ https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 풀이는 이분꺼 참고함..! https://wtg-study.tistory.com/76 b?a:b int dp[301]; int stair[301]; int main() { int N; scanf("%d", &N); for (int i = 1; i
2022.07.03 -
백준 1463번 - 1로 만들기
문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. 1. X가 3으로 나누어 떨어지면, 3으로 나눈다. 2. X가 2로 나누어 떨어지면, 2로 나눈다. 3. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 입력 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. 출력 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 예제 1 | 입력 : 2 / 출력 : 1 예제 2 | 입력 : 10 / 출력 : 3 힌트 : 10의 경우에, 10->9->3->1 로, 3번 만에 만들 수 있다. 풀이 : 애초에 DP문제를 지금 풀고 있는건데 ^^... 생각을 우찌하시는건가요 .... 입력..
2022.07.02 -
백준 2748 - fibonacci 2
DP 문제 입문... ^_ㅠ 하..... 가망도 없는거 붙잡고있을라니까 멘탈이 힘들군... int main() { int N; long long arr[91] = {0,1}; scanf("%d", &N); for(int i = 2; i
2022.07.02 -
Merge Sort ( 합병 정렬 )
## 개념 요약 ## 일반적인 방법으로 구현했을 때 이 정렬은 "안정 정렬"에 속하며, 분할 정복 알고리즘 중의 하나 이다. 분할 정복 ( divide and conquer ) 방법 문제를 작은 2개의 문제로 분리하고, 각각을 해결한 다음 ! 결과를 모아서 원래의 문제를 해결하는 전략이다. 분할 정복 방법은 대개 순환 호출을 이용하여 구현한다. 과정 ! 리스트의 길이가 0 or 1 이면, 이미 정렬된 것으로 본다. 1이상이면 ? 정렬되지 않은 리스트를 절반으로 잘라 비슷한 크기의 두 개로 나눈다. 각 부분 리스트를 재귀적으로 합병 정렬을 이용해 정렬한다. 두 리스트를 다시 하나의 정렬된 리스트로 합병한다 ## 구체적인 개념 ## 하나의 리스트를 2개의 균등한 크기로 분할하고, 분할된 리스트를 정렬, 2개..
2022.06.30 -
Bubble Sort ( 버블 정렬 )
** 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘 ! , 오름차순으로 정렬한다. ## 개념 요약 ## 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘. 인접한 2개의 값을 비교하여, 크기가 순서대로 되어있지 않으면 교환한다. 선택 정렬과 기본 개념이 유사하다. (SWAP) ## 구체적인 개념 ## 버블 정렬은 1번째 값과 2번째 값을, 2번째 값과 3번째 값을....3번째와 4번째를.... 이런식으로 (마지막-1) 번째 자료와 마지막 자료를 비교해 교환하면서 자료를 정렬한다. 1회전을 수행하고 나면 , 가장 큰 값이 맨 뒤로 이동하므로, 2번째 loop 에서는 맨 끝에 간 큰값은 정렬에서 제외되고, 2회전을 수행하면 끝에서 2번째 값은 다음 loop 에서 제외된다. 이렇게 1회전을 수행할 때 마다..
2022.06.30