Brynn Park
close
프로필 배경
프로필 로고

Brynn Park

    • 분류 전체보기 (79)
      • Blockchain (10)
        • 마스터링 이더리움 (7)
        • 기본 개념 (1)
        • 개발 (2)
      • Algorithm (60)
        • LeetCode (19)
        • BOJ (33)
        • Programmers (6)
        • CodeTree (0)
      • SQL (1)
        • LeetCode (1)
      • 소프트웨어_개발 (3)
  • mode_edit_outline글작성
  • settings환경설정
  • 홈
  • 태그
  • 방명록
  • 카테고리
LeetCode 392. Is Subsequence

LeetCode 392. Is Subsequence

초기 접근 방법 ❗️처음에 생각한 방향 for 문을 중첩해서 배열을 하나하나 조회하고 계산해보려고 함 (brute force) Brute Force bool isSubsequence(char * s, char * t){ int s_len = strlen(s); int t_len = strlen(t); if(s_len>t_len) return false; if(!s_len) return true; int len=s_len; for(int i=0; i

  • format_list_bulleted Algorithm/LeetCode
  • · 2023. 8. 11.
  • textsms

LeetCode 238. Product of Array Except Self

초기 접근 방법 ❗️처음에 생각한 방향 for 문을 2번 돌리면 쉽게 해결되는 문제라고 생각함 answer에 대해 한 번, nums에 대해 한 번 돌려서 계산할 수 있지만 문제는 이렇게 했을 시, O(n^2)의 시간복잡도를 가지게 되어 문제 조건을 만족할 수 없음. int* productExceptSelf(int* nums, int numsSize, int* returnSize){ *returnSize = numsSize; int* answer = (int*) malloc((*returnSize)*sizeof(int)); int i, j; for(i=0; i

  • format_list_bulleted Algorithm/LeetCode
  • · 2023. 8. 11.
  • textsms

LeetCode 283. Move Zeroes

초기 접근 방법 ❗️처음에 생각한 방향 copy를 만들지 않고 주어진 배열 내에서 수행을 해야하므로 Bubble sort처럼 구현하여 정렬하려고 생각함 이렇게 하면 구현 자체는 간단하게 할 수 있음 (한 번 돌 때마다 가장 끝에는 0임을 확정짓는 것) 🚫 다만 이렇게 하면, 시간복잡도가 높아짐 ✏️ 그래서 생각한 방법 [i]와 [i+1] 번째 요소를 비교하며 0을 하나씩 뒤로 넘기는 Bubble sort보다는, Two Pointers, head와 tail index를 각각 두고, 0이 발견된 head index와 0이 아닌 tail index를 교환하는 방법을 생각 void moveZeroes(int* nums, int numsSize){ if(!numsSize) return; int head = 0; ..

  • format_list_bulleted Algorithm/LeetCode
  • · 2023. 8. 11.
  • textsms
LeetCode 345. Reverse Vowels of a String

LeetCode 345. Reverse Vowels of a String

접근 오류 ❗️처음에 생각한 방향 처음에 생각한 방향이 오류없이 한 번에 구현되었음 따라서 접근 오류는 없음 히히 ! ✌️ 접근 ✅ string의 맨 앞에서 시작하는 포인터(head)와 맨 뒤에서 시작하는 포인터(tail)를 각각 둔 뒤, 포인터를 각자 방향으로 옮겨가며 둘 다 vowel인 경우 Swap할 것 ( 정확히 말하자면 포인터보다는 인덱스가 맞는 말 ) ✅ 모음인지 확인할 수 있는 함수는 switch 문을 사용해 따로 만들 것 - 이렇게 생각한 이유는, 문제 조건에 ASCII로 표현가능한 모든 문자라고 했기 때문에 대소문자 포함 10개이고, 10개 모두 동일하게 true가 반환되는 간단한 함수이므로 그냥 따로 빼서 계산하는 것이 편하다고 생각함 ✅ Loop의 조건을 무엇으로 할 것인가? 보통 h..

  • format_list_bulleted Algorithm/LeetCode
  • · 2023. 8. 10.
  • textsms

LeetCode 605. Can Place Flowers

접근 오류 ❗️처음에 생각한 방향 단순하게 꽃을 하나 놓을 수 있을 때마다 n만 감소하는 방향으로 처음에 생각 이렇게 할 시 문제점은 꽃을 넣은 것을 배열에 표시해두지 않기 때문에 이 후 꽃을 놓을 수 있는 가능성이 훼손됨 따라서 꽃을 놓은 자리를 0에서 1로 바꾸고 계산하기 시작 ⛔️ 처음 코드의 문제점: 발생하는 예외사항에 대한 처리 미흡 - n과 flowerbedSize, 그리고 flowerbed[0], flowerbed[flowerbedSize-1]에 따라 따로 처리해야 되는 부분 존재하지만 이를 간과하고 코드를 짜서 오류 발생 - 이를 생각해서 코드를 짜려고 했지만 예외를 깔끔하게 정리하지 않아서 한 예외를 처리하면 다른 예외를 처리하지 못하는 부분 발생 - n >= flowerbedSize/2..

  • format_list_bulleted Algorithm/LeetCode
  • · 2023. 8. 10.
  • textsms

LeetCode 1431. Kids With the Greatest Number of Candies

접근 오류 ❗️처음에 생각한 방향 모든 배열에 대해 하나하나 계산해보려고 함 먼저 index 역할을 하는 i에 대해 for문을 돌려 candies[i] + extraCandies 한 것이 배열의 나머지 모든 요소들보다 큰 지 isGreatest로 총 n번 확인 isGreatest의 구성은, max로 주어진 parameter (여기선 index라고 표시)를 for문을 돌려 또 다시 candies 배열의 모든 요소와 비교 ⛔️ 위와 같이 할 경우, 쓸데없는 계산이 늘어 시간복잡도가 O(n^2) 됨 int isGreatest(int* candies, int candiesSize, int index){ for(int i=0; i index) return 0; //false } return 1; //true } ..

  • format_list_bulleted Algorithm/LeetCode
  • · 2023. 8. 10.
  • textsms
  • 1
  • 2
  • 3
  • 4
공지사항
전체 카테고리
  • 분류 전체보기 (79)
    • Blockchain (10)
      • 마스터링 이더리움 (7)
      • 기본 개념 (1)
      • 개발 (2)
    • Algorithm (60)
      • LeetCode (19)
      • BOJ (33)
      • Programmers (6)
      • CodeTree (0)
    • SQL (1)
      • LeetCode (1)
    • 소프트웨어_개발 (3)
최근 글
인기 글
최근 댓글
태그
  • #Medium
  • #array
  • #leetcode
  • #BOJ
  • #greedy
  • #웹3
  • #블록체인
  • #c
  • #DP
  • #Algorithm
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바