본문 바로가기

전체 글92

3주차 1 회로 해석 시 방울 유무에 따라 Active-high, Active-low를 결정한다. propagation delay 저항, 트랜지스터 등 여러 전자 소자를 거치며 전기 신호에 지연이 발생한다. input을 받고 output을 내기까지 걸리는 시간을 propagation delay라고 한다. 예) 연습문제 3-44 end time 200ns를 무시하고 그리면 위와 같다. worst case propagation delay란 문제에서 주어진 max tPLH, max tPHL가 모두 해당하는 경우이다. HDL은 시험범위가 아니다. Sum-of-Products와 Product-of-Sums SOP란 곱 덩어리들의 합으로, AB + CD + E 와 같은 것이다. POS란 합 덩어리들의 곱으로, AB(C+D) .. 2020. 9. 14.
유니온 파인드 연속된 구간 [p : q] 을 merge 하는 경우, 단순하게 p, p+1, ..., q 를 순서대로 merge 하면 정보의 낭비가 크다. merge(p ... q) 를 위에서 언급한 작업이라고 하자. 단순히 merge(p ... q)를 하는 경우 - 3, 4에서 불필요한 작업을 반복해서 하게 된다. 정보의 낭비를 줄여보자. 방향을 뒤집어 오른쪽을 root로 하여 merge 한다. 이제 구간 [3 : 6] 을 merge 해보자. 구현은 다음과 같이 하였다. while (search(p) != search(q)) { int next = search(p) + 1; merge(q, p); p = next; } p는 3을 가리키고, q는 6을 가리키고 있다. 첫 루프에서, 다음 그림과 같이 merge(q, p).. 2020. 9. 11.
파이썬 오답노트 #1 빠른 입력 input = stdin.readline 문자열 자체를 저장하고 싶으면 rstrip까지 하자. www.acmicpc.net/board/view/22716 map(int, input().split()) 도 입력이 매우 많으면 속도 차이를 보인다.. #2 리스트에 여러 값 추가하기 li.extend(map(int,input().split())) #3 decimal 라이브러리와 임의 정밀도 import decimal as D Dc = D.Decimal D.getcontext().prec = 2800 a, b = map(Dc, input().split()) res=Dc(a/b) p = abs(res.as_tuple().exponent) print(('{:.%df}' % p).format(res).. 2020. 9. 11.
Codeforces Round #669 (Div. 2) ABC from sys import stdin def input(): return stdin.readline().rstrip() for _ in range(int(input())): l = int(input()) s = list(map(int, input().split())) r = [] for i in range(l//2): if s[i*2] == 0 and s[i*2+1] == 0: r.append(0); r.append(0); elif s[i*2] == 1 and s[i*2+1] == 1: r.append(1); r.append(1); else: r.append(0); print(len(r)) print(*r) A - Ahahahahahahahaha 입력의 길이가 반드시 2n이라는 점에 근거하여 두 자리씩.. 2020. 9. 9.
2주차 1 논리 0과 논리 1 논리 0 False Off LOW No Open switch 논리 1 True On HIGH Yes Closed switch 부울에서 0과 1로만 나타낸다. 부울 대수의 기본 연산 OR AND NOT 진리표 입력에 대한 출력이 결정된 조합 논리회로의 모든 입력에 대한 출력 값을 표로 나타낸 것 A B X (AND) 0 0 0 0 1 0 1 0 0 1 1 1 위와 같은 경우 22 가지 입력이 가능하다. OR 연산 Boolean expression X = A+B (부울 연산에서 1 + 1 + 1 + ... + 1 = 1 이다.) 3-input의 경우 X = A+B+C 이다. 제어신호 Data 0 항상 0 1 통과 0과 1이 교차하는 순간 Glitch (undefined behavior)가.. 2020. 9. 7.
2020 ICPC Sinchon Summer Algorithm Camp Contest Open 참여 #include using namespace std; int W0, I0, T, D, I, A; int newWeight, newBm; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> W0 >> I0 >> T >> D >> I >> A; // not considering bm delta newWeight = W0 + (I - (I0 + A)) * D; if (newWeight > 0) cout > T; for (int i = 0; i > input; giant.push(input); } if (giant.top() K; line.resize(M); for.. 2020. 9. 6.