본문 바로가기
  • 비둘기다
  • 비둘기다
  • 비둘기다

분류 전체보기53

[스택] 백준 2504번 (파이썬) : 괄호의 값 문제를 요약하자면 소괄호와 대괄호에 따라 연산을 다르게 처리한다는 것이다. 코드로 구현하면 다음과 같다. b = list(input()) s = [] answer = 0 num = 1 for i in range(len(b)): if b[i] == "(": s.append(b[i]) num *= 2 elif b[i] == "[": s.append(b[i]) num *= 3 elif b[i] == ")": if not s or s[-1] == "[": answer = 0 break if b[i-1] == "(": answer += num s.pop() num //= 2 else: if not s or s[-1] == "(": answer = 0 break if b[i-1] == "[": answer += n.. 2023. 5. 19.
[Data Structure] 연결 리스트2(Linked List2) 이번 포스팅에서는 이전에 다뤘던 연결 리스트의 개념을 이용한 리스트인 원형 연결 리스트와 이중 연결 리스트에 대해 얘기해보려 합니다. 먼저 원형 연결 리스트입니다. 원형 리스트는 기존의 단일 연결 리스트에서 마지막 노드가 NULL이 아닌 head가 가리키는 첫 번째 노드를 가리킨다는 것이 차이점입니다. 일반적인 연결 리스트에서는 link가 한 방향으로 흘러가기 때문에 마지막 노드는 무조건 NULL을 가리킵니다. 그러나 원형 연결 리스트에서는 위와 같은 구성을 띄게 함으로써 원형과 같은 형태로 구성합니다. 원형 연결 리스트에 있어서 주의할 부분은 딱 하나입니다. head를 가리키는 마지막 노드의 link에 대한 처리입니다. 만약 insert를 해준다고 할 때, 중간에 값을 삽입하는 것은 기존과 같습니다. .. 2023. 5. 18.
[스택] 백준 10799번 (C언어) : 쇠 막대기 #define _CRT_SECURE_NO_WARNINGS #include #include #include #define N 100000 char str[N]; int main(void) { int count = 0, sum = 0; scanf("%s", str); for (int i = 0; i < strlen(str); i++) { if (str[i] == '(') { count++; } else if(str[i] == ')') { count--; if (str[i - 1] != str[i]) sum += count; if (str[i] == str[i + 1]) sum += 1; } } printf("%d", sum); } main함수 안에 있는 for문을 살펴보면 일단 열리는 괄호 ( 가 나오면 ).. 2023. 5. 18.
[Computer Vision] cs231n lecture4 - Backpropagation andNeural Networks part 1 먼저 지난 강의의 내용을 복습하자면 다음과 같습니다. 먼저 문제와 정답 사이의 점수를 scores function을 이용하여 얻어내고, SVM과 같은 손실함수로 위의 점수들의 현황이 얼마나 좋은 상황인지 아닌지를 판별했습니다. 그다음 L이라는 변수를 loss에 대한 combination과 정규화된 값을 이용하여 지정해 줬습니다. 그러면 이제 우리가 찾고자 하는 것은 가장 낮은 손실에 대한 W값입니다. 그러기 위해서는 W에 대한 L의 기울기를 구해야 합니다. 그래서 저번 lecture3에서 gradient descent와 optimization을 보면서 우리가 원하는 최적의 W값을 얻는 법을 배웠습니다. 이번에는 저번에 배운 analytic gradient를 임의의 complex function에 적용하는.. 2023. 5. 12.