본문 바로가기

전체 글82

1장 요약 CPU time = (instructions / program) * (clock cycles / instruction) * (sec / clock cycle) Clock cycle 감소와 Clock rate 증가는 양립하기 어려우므로 타협점을 찾는다 암달의 법칙: 성능 향상 → 자주 사용하는 명령(common case)를 빠르게, 즉 가성비 알고리즘, 언어, 컴파일러: IC와 CPI에 관여 ISA: IC, CPI와 Clock Cycle Time에 관여 퍼포먼스에 영향을 끼치는 요소 알고리즘: 연산 횟수 언어, 컴파일러, 아키텍처: Operation당 실행되는 Machine instruction 수 프로세서, 메모리 시스템: Instruction의 실행 속도 IO 시스템: IO 속도 Response .. 2021. 4. 8.
생각 정리 곧 시험 기간이기도 하여 짧은 글을 써보려 한다. 수많은 불필요한 것을 잃고 잊었다. 대신 새롭게 많은 것을 배우고, 마음에 드는 인연을 맺었다. 새로움을 받아들일 뿐 무엇이 진정 필요한지 알지 못하지만, 그런 무지함을 즐기고 있다. 공부라는 것을 처음 해보고 있다. 정확히 말하자면 첫인상이 호락호락하지 않아도 배우려고 힘쓰고 있다. 어려워도 담백한 즐거움이 있다. 건강이 많이 악화되었다. 물론 당장 병상에 오를 정돈 아니지만, 누적된 만성 질환과 통증이 겹쳐 아무것도 하지 못하는 날도 있다. 의지로 극복할 게 아니라 병원에 가고 치료를 위한 휴학도 고민 중이다. 스터디 팀장이라는 자리를 맡으며 많은 고민을 하고 있다. 나 자신은 스터디 때 올바른 정보를 공유하기 위해 다시 공부하고 있지만, 팀원분들의 .. 2021. 3. 30.
2021 IGRUS Newbie Programming Contest 운영 후기 오늘(3월 28일) 오픈 컨테스트까지 무사히 끝났다. 작년 대회를 여신 선배님이 출제자를 모집한다고 하셔서 지원했고, 결국 세 문제를 내게 되었다. 그 밖에 해설 PPT(비공개로 해야 하는 것 같다) 제작 등 자질구레한 일들을 했다. 대회는 백준 온라인 저지에서 비대면으로 진행하였다. 공지가 늦는 등 운영의 부족함과 일부 모호한 지문에 참가자 분들께 정말 죄송했다. ㅜㅜ 그래도 많은 학우분들이 대회 끝나기 직전까지도 열심히 참여해주셔서 정말 감사했다. 최종 결정된 수상권의 문제 해결 수 분포는 8솔 4명, 7솔 2명, 6솔 2명, 5솔 4명이다. 1등 10솔브 정도를 예상하고 출제하였는데 생각보다 많이 어려웠던 거 같다. 다음은 검수 단계에서 내가 풀었거나 시도한 문제들에 대한 간단한 설명이다. A. 홀.. 2021. 3. 28.
BOJ 2000문제 PS와는 별개로 랭킹작을 좋아해서 나름 열심히 했다. 컨텐츠(문제)가 엄청나게 많아 게임처럼 끊기 어려웠다. 당분간은 개인적으로 선호하는 PO, USACO 등의 기출이나 도움이 될 만한 문제들 위주로 덜 열심히 할 것 같다. 이제 밀린 코드포스도 풀고, CS(학교 공부)랑 웹 개발 공부도 좀 해야겠다. ㅎㅎ; 2021. 3. 23.
BIT struct Bit { ll cap; vector arr, tree; Bit(int size) { cap = size + 1; arr.resize(cap, 0); tree.resize(cap, 0); } void update(int i, ll x) { ll diff = x; arr[i] += x; while (i < cap) { tree[i] += diff; i += i & -i; } } ll query(int l, int r) const { return pquery(r) - pquery(l - 1); } ll pquery(int i) const { ll ret = 0; while (i > 0) { ret += tree[i]; i -= i & -i; } return ret; } }; 2021. 3. 22.
DSU int dsfind(int tar) { if (tar == root[tar]) return tar; return root[tar] = dsfind(root[tar]); } void dsmerge(int a, int b) { a = dsfind(a), b = dsfind(b); if (a != b) root[a] = b; } 2021. 3. 22.