전체 글 99

[C] 배열을 초과하여 데이터를 넣을 수 있을까?

결론부터 말하자면 가능하다 #include #define MAX_SIZE 10 int stack[MAX_SIZE]; int top = -1; int is_full() { if (top >= MAX_SIZE - 1) { return 1; } return 0; } int is_empty() { if(top == -1) { return 1; } return 0; } void push(data) { if(!is_full()) { stack[++top] = data; } } int pop() { if(!is_empty()) { return stack[top--]; } } int main() { push(1); push(1); push(1); push(1); push(1); push(1); push(1); push..

[Python] itertools 정리

요즘 완전 탐색 문제를 푸는데 itertools가 필요한 부분이 많다. 정리를 안 해두니 계속 똑같은 레퍼런스 보면서 코딩하는데, 정리해두고 내 포스팅 보면서 공부하려고 정리한다. itertools의 여러가지 기능 중에서도 조합형 이터레이터에 대한 포스팅이다. 설명은 docs.python.org 에서 참고하였다. itertools 효율적인 looping을 위한 iterator를 만드는 모듈 조합형 이터레이터 - product(p, q, ... [repeat=1]) : cartesian product, 중복 조합 - permutations(p[, r]) : 모든 가능한 순서, 반복되는 요소 없음 - combinations(p, r) : 순서 정렬, 반복되는 요소 없음 - combinations_with_r..

[Python] 백준 11724 DFS 메모리 초과

평화롭게 백준 11724번을 풀고 있었는데 진짜 이해가 안 되는 상황이 발생했다. 코드가 계속 메모리 초과가 일어나기 시작한 것... DFS로 구현하고 있었는데 오기가 생겨서 BFS로 안 바꾸고 계속 풀어봤다. 그래도 계속 안 되길래 열받아서 다른 사람 코드를 가져와서 제출해봤는데 또! 메모리 초과가 떴다. import sys sys.setrecursionlimit(10**6) def dfs(start): visited[start] = True for index in graph[start]: if not visited[index]: dfs(index) n, m = map(int, input().split()) graph = [[] for _ in range(n+1)] visited = [False] * ..

[Android] [Kotlin] Splash 화면 만들기

앱은 콜드 스타트, 웜 스타트, 핫 스타트라는 세 가지 상태 중 하나에서 시작하며, 각 상태는 앱이 사용자에게 표시되는 데 걸리는 시간에 영향을 미친다. 콜드 스타트에서는 앱이 처음부터 실행되므로 시간이 가장 오래 걸리게 되는데, 이렇게 앱 로드, UI 준비 과정을 기다리며 보여주는 화면이 Splash (스플래시) 화면이다. 이전에 개발할 때에는 Splash 화면에 대한 이해도가 떨어져 Timer로 시간 제한 (3000 ms 정도)을 두고 구현했으나, 이는 콜드 스타트를 3000ms 만큼 지연시키는 결과를 낳는다. 그래서 이번에는 올바른 방법으로 구현해보았다. 먼저 theme.xml에서 다음 줄을 추가한다. @drawable/splash_drawable은 splash 화면을 어떻게 표시할 지 정의하는 부..

2022년 1학기 목표

뭔가 이 블로그에는 멋진 글만 적어야 할 것 같아서 이제야 글을 쓰게 됐다. 그렇다고 이 글이 멋진 글이라는 건 아니지만 일단 쓴다. 뭔가 하고 싶은 게 생겼다. 아직은 내 실력이 미천해서 대놓고는 못 말하겠지만 가고 싶은 곳도 생겼다. 그래서 이번 학기에는 안드로이드 공부를 하려고 한다. 코틀린으로! Java 도 잘하는 것은 아니지만, 최근에 맛 보게 된 코틀린이 너무 맛있었다. 매주 일요일마다 코틀린 스터디를 할 것이다. 그래서 코틀린으로 많은 것을 하고 싶다. 현재 스프링 스터디도 하고 있다. Java가 아니라 코틀린으로 하는 거라 양쪽으로 공부를 할 수 있을 것 같다. 생각해둔 개인 프로젝트가 있다. 이 프로젝트는 정말 완벽하게 하고 싶어서 욕심이 생긴다. 물론 첫 술에 배부를 수는 없다는 거 알..

ZeroPage 회장 회고

오늘 드디어 ZeroPage의 31대 회장으로서의 임기가 종료되었다. 1년이 가기는 하는 걸까, 라고 생각했던 예전이 무색하게도 시간은 순식간에 흘러 오늘이 되었다. 그래서 2021 회고에도 잠깐 언급하긴 했었지만, 올해 나에게 가장 큰 비중을 차지했었던 활동이었기에 따로 회고를 써보려 한다. 개발 블로그일까 회고 블로그일까 시작은 누구도 예상하지 못했던 2월 초에 일어났다. 나는 당시 본가에 있었는데, 이전부터 ZeroPage에서 회원으로 활동을 하고 싶었지만 zeropage.org의 서버가 불안정해서 회원가입과 글을 올리지 못하는 상황이었다. 그래서 무려(?) ZP 회장님께 연락을 받았었는데 여차저차해서 회장 제의를 받게 되었다. 사실 처음에는 정말 고민이 많았다. ZeroPage는 오래된 동아리고,..

Greedy Algorithm

🙂 파이썬 알고리즘 인터뷰를 공부하며 적는 공부 흔적입니다. 그리디 알고리즘 바로 눈 앞의 이익만을 좇는 알고리즘 대부분의 경우에는 뛰어난 결과를 도출하지 못하지만, 드물게 최적해를 보장하는 경우도 있음 최적화 문제를 대상으로 한다. (특히 로컬 최적해) 최적해를 찾을 수 있으면 그것을 목표로 삼고, 찾기 어려운 경우에는 주어진 시간 내에 그런대로 괜찮은 해를 찾는 것을 목표로 함. 그리디 = 탐욕 선택 속성 + 최적 부분 구조 탐욕 선택 속성 : 앞의 선택이 이후 선택에 영향을 주지 않는 것 (선택을 다시 고려하지 않음) 최적 부분 구조 : 문제의 최적 해결 방법이 부분 문제에 대한 최적 해결 방법으로 구성되는 경우 → 이 두 가지 조건을 만족하면 최적해를 찾을 수 있다. (만족하지 않더라도 정답을 근..

2021년 회고

짧은 회고만 쓰다가 드디어 1월 5일이 되어서야 연말 회고를 시작하게 되었다. (자랑 아님) 아무래도 좀 늦은 감이 있지 않나 싶은데, 그래도 적어보려 한다. 올해 한 걸 돌아보자. 교내 동아리 ZeroPage의 회장을 맡아서 동아리를 운영해봤고, GDSC의 코어 멤버로도 활동할 수 있게 되었다. CLUG 동계 해커톤, 정부 주최 공모전, 동국대 캡스톤 밸류업 프로그램에 참가해서 어플 개발을 맡았다. 심지어 객지프 팀프로젝트도 어플 개발했었다... 교양이 많았던 2학년 1학기였지만 학년 수석으로 성적 장학금도 받아봤다. 과외를 시작해서 C, Java, Python을 가르쳤다. 가르치면서 배우는 것도 많았다. 알고리즘 공부를 시작해서 백준 골드를 달성했다. 아직 갈 길이 멀다고 생각한다. 블로그를 만들어서..